본문 바로가기
728x90
반응형

EVERYTHING196

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.
JAVA 프로그래머스 [점의 위치 구하기] 자바 [프로그래머스] 코딩테스트 연습 -> 코딩테스트 입문 -> 점의 위치 구하기 https://school.programmers.co.kr/learn/courses/30/lessons/120841 해결 과정 본 문제는 단순히 if 문을 이용해서 판단하여 답을 도출 할 수 있다. 1 사분면은 양수, 양수 2사분면은 음수, 양수 3 사분면은 음수, 음수 그리고 나머지 이렇게 4개의 조건에 따라 각 사분면의 숫자를 answer에 넣어주면 된다. 소스 코드 class Solution { public int solution(int[] dot) { int answer = 0; if (dot[0] > 0 && dot[1] >0) { answer = 1; } else if (dot[0] 0) .. 2023. 5. 31.
JAVA 프로그래머스 [2차원으로 만들기] 자바 [프로그래머스] 코딩테스트 연습 -> 코딩테스트 입문 -> 2차원으로 만들기 https://school.programmers.co.kr/learn/courses/30/lessons/120842 해결 과정 먼저, 배열 answer의 크기를 설정해주어야 한다. 2차원 배열의 크기는 n이 2일 경우 [nu_list.length/n][n] 으로 나타내 줄 수 있다. 1차원 배열의 원소를 하나씩 가져오기 위해 int k를 0으로 선언해주고 이중 for문을 돌면서 answer 배열에 하나씩 원소를 집어넣어주면 된다. 소스 코드 class Solution { public int[][] solution(int[] num_list, int n) { int[][] answer = new int [num_list.lengt.. 2023. 5. 31.
JAVA 프로그래머스 [가위 바위 보] 자바 Lv.0 [프로그래머스] 코딩테스트 연습 -> 코딩테스트 입문 -> 가위 바위 보 https://school.programmers.co.kr/learn/courses/30/lessons/120839 해결 과정 먼저 rsp를 한 글자씩 나누어 String 배열 s에 넣어준다 그리고 반복문과 조건문을 사용하여 만약 s의 원소가 각각 0, 2, 5 와 같을 경우 그에 대비하여 이길 수 있는 경우인 5,0,2를 answer 문자열에 추가해준다. 같을 경우를 찾기 위해 배열.equals를 사용한다. 소스 코드 class Solution { public String solution(String rsp) { String answer = ""; String[] s = rsp.split(""); for (int i = 0; i 2023. 5. 30.
JAVA 프로그래머스 [구슬을 나누는 경우의 수] 자바 Lv.0 [프로그래머스] 코딩테스트 연습 -> 코딩테스트 입문 -> 구슬을 나누는 경우의 수 https://school.programmers.co.kr/learn/courses/30/lessons/120840 해결 과정 본 함수는 보자마자 재귀함수라는 것을 알아차렸지만 재귀함수는 어떻게 쓰는지 아직 몰라서 다른 사람들의 코드를 참고 했다 재귀함수의 공식을 하나하나 대입해보며 저 공식을 외워야할 것 같다. 소스 코드 class Solution { public int solution(int balls, int share) { return combination(balls, share); } public static int combination(int balls, int share) { if (balls == share.. 2023. 5. 30.
JAVA 프로그래머스 [개미 군단] 자바 Lv.0 [프로그래머스] 코딩테스트 연습 -> 코딩테스트 입문 -> 개미 군단 https://school.programmers.co.kr/learn/courses/30/lessons/120837 해결 과정 먼저 5, 3, 1 공격력에 대한 총 병력의 숫자를 알아봐야 하므로 사냥감의 체력을 5, 3, 1로 나누고, 나머지를 다시 나누면서 그에 해당하는 값들을 모두 더해주면 된다. 만약 24의 경우 5로 나누게 되면 4가 나온다. (5 병력) 그리고 이 23을 5로 나눈 나머지는 4이 된다 그럼 이 4를 3으로 나누게 되면 1이 나온다.(3 병력) 난시 이 4를 3으로 나눈 나머지는 1이 된다.(1 병력) 이 5병력, 3병력, 1병력에 해당하는 값들을 모두 더하면 (4+1+1) 최소 병력은 6이 된다. 소스 코드 c.. 2023. 5. 30.
JAVA 프로그래머스 [모스부호 (1)] 자바 [프로그래머스] 코딩테스트 연습 -> 코딩테스트 입문 -> 모스부호 (1) https://school.programmers.co.kr/learn/courses/30/lessons/120838 해결 과정 이 문제는 HashMap을 이용하여 해결하였다. 먼저 morseMap이라는 HashMap을 만들어주고, 모스부호와 해당 알파벳을 put해준다. 다음 String배열 morse를 만들고 letter을 공백을 기준으로 나누어 배열에 넣어준다. 배열의 모든 원소를 반복하면서 HashMap에서 해당 모스부호에 해당하는 알파벳을 가져와서 문자열 answer에 추가해준다. answer을 return 해주면 된다. 소스 코드 import java.util.HashMap; import java.util.Map; clas.. 2023. 5. 30.
728x90
반응형