본문 바로가기
728x90
반응형

프로그래머스138

JAVA 프로그래머스 [문자열 정렬하기 (2)] 자바 [프로그래머스] 코딩테스트 연습 -> 코딩테스트 입문 -> 문자열 정렬하기 (2) https://school.programmers.co.kr/learn/courses/30/lessons/120911 해결 과정 먼저 my_string을 toLowerCase로 소문자로 변경해주고 split을 사용하여 배열 arr을 생성한다. 그 배열 arr을 Arrays.sort(arr)을 이용해 오름차순으로 정렬하고, 반복문을 돌면서 arr[i] 값을 answer에 넣어주고 return해주면 된다. 소스 코드 import java.util.Arrays; class Solution { public String solution(String my_string) { String answer = ""; String[] arr = .. 2023. 6. 7.
JAVA 프로그래머스 [대문자와 소문자] 자바 Lv.0 [프로그래머스] 코딩테스트 연습 -> 코딩테스트 입문 -> 대문자와 소문자 https://school.programmers.co.kr/learn/courses/30/lessons/120893 해결 과정 대문자를 소문자로 변경 : Character.toLowerCase() 소문자를 대문자로 변경 : Character.toUpperCase() 소문자인지 확인 : Character.isLowerCase() 대문자인지 확인 : Character.isUpperCase() 위의 것들을 사용하여 반복문과 조건문을 통해 코드를 작성한다. .charAt()를 이용하여 구별하고 변경해준다. 소스 코드 import java.util.Arrays; class Solution { public String solution(Str.. 2023. 6. 4.
JAVA 프로그래머스 [369게임] 자바 [프로그래머스] 코딩테스트 연습 -> 코딩테스트 입문 -> 369게임 https://school.programmers.co.kr/learn/courses/30/lessons/120891 해결 과정 먼저 order를 문자열로 변환하기 위해 Integer.toString() 을 사용한다. 문자열 배열을 만들어 split을 통해 넣어주고, 반복문을 돌리며 3,6,9와 문자열배열의 문자가 같으면 answer++ 해준다. 소스 코드 class Solution { public int solution(int order) { int answer = 0; String s = Integer.toString(order); String [] or = s.split(""); for (int i=0; i 2023. 6. 4.
JAVA 프로그래머스 [암호 해독] 자바 Lv.0 [프로그래머스] 코딩테스트 연습 -> 코딩테스트 입문 -> 암호 해독 https://school.programmers.co.kr/learn/courses/30/lessons/120892 해결 과정 String cipher를 문자열 배열로 split을 사용하여 만들고, StringBilder 또한 생성해준다. 반복문을 사용하여 ci 배열의 인덱스+1를 code로 나눈 값이 0이어야 하는 조건에 부합하면, sb.append()를 이용하여 해당 인덱스의 원소를 차례로 넣어준다. 이제 완성된 sb를 .toString()을 이용하여 문자열로 return 해준다. 소스 코드 class Solution { public String solution(String cipher, int code) { StringBuilde.. 2023. 6. 4.
JAVA 프로그래머스 [가까운 수] 자바 [프로그래머스] 코딩테스트 연습 -> 코딩테스트 입문 -> 가까운 수 https://school.programmers.co.kr/learn/courses/30/lessons/120890 해결 과정 오우 일단 졸려서 자야겠다.. 소스 코드 class Solution { public int solution(int[] array, int n) { int answer = 100_000; for(int num : array){ int diff = num - n; if(Math.abs(diff) < Math.abs(answer)){ answer = diff; }else if(Math.abs(diff) == Math.abs(answer) && diff < answer){ answer = diff; } } answer.. 2023. 6. 4.
JAVA 프로그래머스 [삼각형의 완성조건 (1)] 자바 Lv.0 [프로그래머스] 코딩테스트 연습 -> 코딩테스트 입문 -> 삼각형의 완성조건 (1) https://school.programmers.co.kr/learn/courses/30/lessons/120889 해결 과정 먼저 변의 길이를 담은 배열 sides를 오름차순으로 정렬해준다. Arrays.sort(sides); 정렬을 하면, 마지막 원소가 가장 긴 변의 길이가 된다. 그러므로 sides[0] + sides[1] 2023. 6. 3.
JAVA 프로그래머스 [배열 원소의 길이] 자바 [프로그래머스] 코딩테스트 연습 -> 코딩테스트 입문 -> 배열 원소의 길이 https://school.programmers.co.kr/learn/courses/30/lessons/120854 해결 과정 이 문제는 해결하기 간단하다. 먼저 배열 answer을 strlist의 길이만큼 지정해주고, 반복문을 사용하여 answer에 strlist 원소마다의 길이를 넣어준다. answer[i] = strlist[i].length(); 그대로 answer을 return 해준다. 소스 코드 class Solution { public int[] solution(String[] strlist) { int[] answer = new int[strlist.length]; for (int i = 0; i < answer.l.. 2023. 6. 3.
JAVA 프로그래머스 [중복된 문자 제거] 자바 Lv.0 [프로그래머스] 코딩테스트 연습 -> 코딩테스트 입문 -> 중복된 문자 제거 https://school.programmers.co.kr/learn/courses/30/lessons/120888 해결 과정 처음에는 Hashset을 이용하려했지만 순서가 없기 때문에 각 알파벳을 순회하는 방법을 사용하였다. answer += my_string.charAt(i); 를 이용하여 answer에 문자를 하나씩 추가해 줄 수 있는데, 이 때 조건을 붙여주면 된다. answer에 my_string.charAt(i)의 값이 들어있는 지 비교하면 된다. answer.contains(String.valueOf(my_string.charAt(i)))를 이용하여 그 반대일 때(!), 문자를 추가해주면 된다. 소스 코드 class.. 2023. 6. 3.
JAVA 프로그래머스 [컨트롤 제트] 자바 Lv.0 [프로그래머스] 코딩테스트 연습 -> 코딩테스트 입문 -> 컨트롤 제트 https://school.programmers.co.kr/learn/courses/30/lessons/120853 해결 과정 먼저 공백을 기준으로 나누어 문자열을 문자열 배열 se로 생성해준다. 그리고 반복문에서 만약 문자열 배열 se가 "Z"와 같다면 배열의 전 원소를 빼주고 continue를 통해 넘어가고 아닐 때는 answer에 각각 더해주면 된다. 그렇게 answer을 return해준다. 소스 코드 class Solution { public int solution(String s) { int answer = 0; String[] se = s.split(" "); for (int i = 0; i < se.length; i++).. 2023. 6. 3.
JAVA 프로그래머스 [숨어있는 숫자의 덧셈 (1)] 자바 Lv.0 [프로그래머스] 코딩테스트 연습 -> 코딩테스트 입문 -> 숨어있는 숫자의 덧셈 (1) https://school.programmers.co.kr/learn/courses/30/lessons/120851 해결 과정 먼저, 문자열 my_string에서 숫자만 추출하여 배열 arr에 넣어준다 그리고 합을 나타내는 answer을 초기화해주고, 배열 arr의 원소들을 answer에 차례대로 더해주면 된다. 소스 코드 class Solution { public int solution(String my_string) { String[] arr = my_string.replaceAll("[^0-9]", "").split(""); int answer = 0; for (int i = 0; i < arr.length; i.. 2023. 6. 2.
JAVA 프로그래머스 [모음 제거] 자바 Lv.0 [프로그래머스] 코딩테스트 연습 -> 코딩테스트 입문 -> 모음 제거 https://school.programmers.co.kr/learn/courses/30/lessons/120849 해결 과정 먼저 나는 StringBuilder를 이용하여 문제를 해결하였다. my_string을 ""로 분리하여 배열 result에 넣어주고 반복문을 돌며 a,e,i,o,u 과 result의 원소가 같으면 continue를 통해 sb.append(result[i])를 실행하지 않는다. 그렇게 되면 sb에는 저것들을 제외한 배열의 원소만 담기게 된다. sb를 문자열로 변환해주며 return을 하면 된다. 소스 코드 class Solution { public String solution(String my_string) { S.. 2023. 6. 2.
JAVA 프로그래머스 [소인수 분해] 자바 Lv.0 [프로그래머스] 코딩테스트 연습 -> 코딩테스트 입문 -> 소인수 분해 https://school.programmers.co.kr/learn/courses/30/lessons/120852 해결 과정 이 문제는 먼저 배열의 크기를 짐작하기 힘들기 때문에 ArrayList를 사용하여 풀어준다. Integer형 ArrayList 배열 answer을 선언해주고, 반복문을 돌아보자 for 문에서 i는 2부터 시작하고, while문을 돌면서 만약 n%i == 0일 때 배열에 i 값을 넣기 전에 우선 answer에 i가 있는지 없는지를 판단해야 하므로, .contains() 를 이용하여 만약 들어있지 않다면 answer에 i 값을 넣어주는 형태로 진행한다. 그리고 그 n을 i로 나눈 값을 다시 n으로 만들어주고 다시.. 2023. 6. 2.
JAVA 프로그래머스 [문자열 정렬하기 (1)] 자바 Lv.0 [프로그래머스] 코딩테스트 연습 -> 코딩테스트 입문 -> 문자열 정렬하기 (1) https://school.programmers.co.kr/learn/courses/30/lessons/120850 해결 과정 본 문제에서는 replaceAll을 이용하여 먼저 숫자들만 남겨 배열 arr을 생성한다. 이 배열을 Arrays.sort(arr)을 이용하여 오름차순으로 정렬해준 다음 새로운 정수형 배열 answer을 만들다. 이 정수형 배열에 문자열 배열인 arr의 원소를 Integer.parseInt()를 이용하여 형변환 후 넣어준다. 그리고 배열 answer을 return해주면 된다. 소스 코드 import java.util.Arrays; class Solution { public int[] solution(.. 2023. 6. 2.
JAVA 프로그래머스 [최댓값 만들기 (1)] 자바 Lv.0 [프로그래머스] 코딩테스트 연습 -> 코딩테스트 입문 -> 최댓값 만들기 (1) https://school.programmers.co.kr/learn/courses/30/lessons/120847 해결 과정 문제 해결은 생각보다 간단하다. 배열에서 두 수를 곱해 최대값을 찾는다는 것은, 오름차순으로 배열했을 때 마지막 원소 두개의 값을 곱하는 것과 같다. 원소는 양수이기 때문에 적합하다. 그러므로 일단 Arrays.sort(numbers)를 이용하여 오름차순으로 정렬해주고, 그렇게 나열된 마지막 원소 두개를 서로 곱해주면 된다. 소스 코드 import java.util.Arrays; class Solution { public int solution(int[] numbers) { int answer = 0.. 2023. 6. 1.
JAVA 프로그래머스 [주사위의 개수] 자바 Lv.0 [프로그래머스] 코딩테스트 연습 -> 코딩테스트 입문 -> 주사위의 개수 https://school.programmers.co.kr/learn/courses/30/lessons/120845 해결 과정 각 변에 들어갈 주사위의 개수를 a, b, c 를 지정해주고 각 변을 n으로 나눈 값을 구해준다. 이 세 수를 곱해주면 답이 나온다. 소스 코드 class Solution { public int solution(int[] box, int n) { int a = box[0]/n; int b = box[1]/n; int c = box[2]/n; return a*b*c; } } 2023. 6. 1.
JAVA 프로그래머스 [팩토리얼] 자바 Lv.0 [프로그래머스] 코딩테스트 연습 -> 코딩테스트 입문 -> 팩토리얼 https://school.programmers.co.kr/learn/courses/30/lessons/120848 해결 과정 n이 주어질 때 n보다 팩토리얼의 값이 작은 최대의 수를 구해야 한다. 재귀함수를 사용하여 구할 수 있지만 나는 다른 방법으로 풀어보았다. 우선 팩토리얼의 값을 담을 num과, 곱해지는 수(1씩 증가)를 담을 k를 1로 선언해준다. 그러고 while 반복문을 이용하여 num에는 k값을 누적하여 곱해주고, 만약 num >n 이 된다면 그 때의 k값을 answer에 넣고 break를 해준다. 반복문의 마지막 부분에서는 k++을 통해 1씩 k값을 증가시켜주면 된다. 하지만 이 때의 k값은 이미 num> n을 만족하는 .. 2023. 6. 1.
JAVA 프로그래머스 [합성수 찾기] 자바 Lv.0 [프로그래머스] 코딩테스트 연습 -> 코딩테스트 입문 -> 합성수 찾기 https://school.programmers.co.kr/learn/courses/30/lessons/120846 해결 과정 이 문제는 이중 for문을 이용하기로 한다. i를 j로 나누었을 때 나머지가 0이 되는 수 마다 a를 1씩 증가시켜준다. i를 하나씩 돌때마다 a를 새롭게 0으로 초기화해준다. 이렇게 해서 a가 3이상이 되었을 때 answer을 1씩 증가시켜주면 된다. 소스 코드 class Solution { public int solution(int n) { int answer = 0; for (int i=1; i 2023. 6. 1.
JAVA 프로그래머스 [공 던지기] 자바 Lv.0 [프로그래머스] 코딩테스트 연습 -> 코딩테스트 입문 -> 공 던지기 https://school.programmers.co.kr/learn/courses/30/lessons/120843 해결 과정 먼저 답의 패턴을 찾아보도록 하겠다. [1,2,3,4,5] 라는 배열이 있을 때 k 를 5라고 해 보겠다. 원모양으로 서있으므로 1,2,3,4,5,1,2,3,4,5라고 패턴을 찾기위해 알아보겠다. 그러면 1 -> 3 - > 5 -> 2 -> 4 순서대로 공을 던지게 되며 answer = 4가 된다. 첫번째는 numbers[0] 두번째는 numbers[2] 세번째는 numbers[4] 네번째는 numbers[6] == numbers[1] 다섯번째는 numbers[8] == numbers[3] 만약 배열의 크기를 .. 2023. 5. 31.
JAVA 프로그래머스 [배열 회전시키기] 자바 [프로그래머스] 코딩테스트 연습 -> 코딩테스트 입문 -> 배열 회전시키기 https://school.programmers.co.kr/learn/courses/30/lessons/120844 해결 과정 이 문제 역시 규칙을 찾아보겠다. [3,1,2] right 의 경우 [2,3,1] 이 된다. answer[0]이 numbers[1] 이 되고 answer[1]이 numbers[2] 이 되고 answer[2]은 numbers[0]이 된다. i를 하나씩 감소시켜 배열 answer에 넣어주면 answer[i] = numbers[i-1] 이 되고 다만 i 가 0이 되면 answer[0] == numbers[numbers.length-1]이 되게 해준다 [3,1,2] left 의 경우 [1,2,3] 이 된다. an.. 2023. 5. 31.
728x90
반응형