728x90 반응형 프로그래머스138 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. JAVA 프로그래머스 [순서쌍의 개수] Lv.0 [프로그래머스] 코딩테스트 연습 -> 코딩테스트 입문 -> 순서쌍의 개수 https://school.programmers.co.kr/learn/courses/30/lessons/120836 해결 과정 우선 이중 for문을 이용해 i*j가 20이 되는 경우에 answer ++를 이용하여 순서쌍의 개수를 1씩 증가시켜준다 하지만 이 부분에서 몇개의 테스트 케이스가 시간초과가 나왔다. 이중 for문에서 반복하는 도중에 시간초과가 나왔다고 생각하고 어떠한 조건을 벗어났을 때 break를 이용하여 반복횟수를 줄여야 한다고 생각했다. 그래서 if문 하나를 추가하여 i*j가 20을 초과했을 때 break;문을 이용하여 속 for문을 탈출시켜준 결과 통과할 수 있었다. 소스 코드 class Solution { publ.. 2023. 5. 29. JAVA 프로그래머스 [배열 자르기] 자바 Lv.0 [프로그래머스] 코딩테스트 연습 -> 코딩테스트 입문 -> 배열 자르기 https://school.programmers.co.kr/learn/courses/30/lessons/120833 해결 과정 우선 배열 answer의 크기는 num2-num1+1 로 지정할 수 있다. 반복문으로 사용하여 i를 num1 부터 num2 까지 반복하면서 배열 answer에 배열 numbers 에서 해당하는 값들을 하나씩 넣어준다 answer을 return 하게 되면 알맞은 답이 된다. 소스 코드 class Solution { public int[] solution(int[] numbers, int num1, int num2) { int[] answer = new int[num2-num1+1]; int k = 0; for(.. 2023. 5. 29. JAVA 프로그래머스 [외계행성의 나이] 자바 Lv.0 [프로그래머스] 코딩테스트 연습 -> 코딩테스트 입문 -> 외계행성의 나이 https://school.programmers.co.kr/learn/courses/30/lessons/120834 해결 과정 이 문제는 먼저 StringBuilder를 이용하여 풀어보려 한다. 먼저 age 각 자리의 수를 해당 알파벳으로 변환하기 위하여 1의 자리수부터 가져오기로 한다. int k를 age를 10으로 나눈 나머지수로 선언 을 해준다 만약, 23의 경우 23%10 = 3이 된다 이 3을 char형으로 변환해 주어야 한다 만약 k가 0일 경우 -> k+'a' 는 그대로 a로 나타낼수 있다 k가 1일 경우 -> 1+'a'이므로 b로 나타낼 수 있다. 이렇게 char형으로 변환한 값을 StringBuilder sb에 i.. 2023. 5. 29. JAVA 프로그래머스 [진료순서 정하기] 자바 Lv.0 [프로그래머스] 코딩테스트 연습 -> 코딩테스트 입문 -> 진료순서 정하기 https://school.programmers.co.kr/learn/courses/30/lessons/120835 해결 과정 먼저 배열 answer의 크기를 배열 emergency의 크기로 선언해준다 다음 이중 for문을 사용하여 각 원소가 본인을 포함한 다른 원소보다 작거나 같을 때 해당 자리와 같은 answer 자리에 1씩 추가해준다. 만약 {3, 76, 24}의 경우 3은 3, 76, 24보다 작거나 같다. 그러므로 총 3을 더해줘서 3의 순서는 3이 된다. 이렇게 모든 원소를 반복해주면 해당 순서인 배열 answer이 나오게 된다. 소스 코드 class Solution { public int[] solution(int[].. 2023. 5. 29. JAVA 프로그래머스 [짝수의 합] 자바 Lv.0 [프로그래머스] 코딩테스트 연습 -> 코딩테스트 입문 -> 짝수의 합 https://school.programmers.co.kr/learn/courses/30/lessons/120831 해결 과정짝수는 2로 나누었을 때 나머지가 0이므로 해당 조건을 반복하여 만족할 때만 answer(합)에 누적으로 더해주면 된다. 소스 코드 class Solution { public int solution(int n) { int answer = 0; for (int i = 1; i 2023. 5. 28. JAVA 프로그래머스 [양꼬치] 자바 Lv.0 [프로그래머스] 코딩테스트 연습 -> 코딩테스트 입문 -> 양꼬치 https://school.programmers.co.kr/learn/courses/30/lessons/120830 해결 과정 10인분을 먹으면 음료수 1개를 서비스로 준다 만약 n인분과 음료수 k개를 먹었다면 금액은 (12000n + 2000k)이 된다 하지만 10인분을 먹을 때마다 음료수 1개를 서비스로 준다고 했으니 만약 23인분이라고 하면 23을 10으로 나눈 몫에 해당하는 값을 음료수 k에서 빼주면 된다 최종으로 총 가격은 (12000n+ 2000(k-n/10) 원이 된다. 소스 코드 class Solution { public int solution(int n, int k) { int answer = 0; answer = 1200.. 2023. 5. 28. JAVA 프로그래머스 [각도기] 자바 Lv.0 [프로그래머스] 코딩테스트 연습 -> 코딩테스트 입문 -> 각도기 https://school.programmers.co.kr/learn/courses/30/lessons/120829 해결 과정 해당 사항에 따라 각도를 4개로 나눈 후, 조건문으로 answer을 각각의 값으로 초기화 해주면 된다. * 여기서 주의할 점은, 90 미만의 각도 조건 시 0 초과인 부분도 && 을 사용하여 실행해줘야 한다 - > angle > 0 && angle < 180 소스 코드 class Solution { public int solution(int angle) { int answer = 0; if (angle < 90) { answer = 1; } else if (angle == 90) { answer = 2; } els.. 2023. 5. 28. JAVA 프로그래머스 [특정 문자 제거하기] 자바 Lv.0 [프로그래머스] 코딩테스트 연습 -> 코딩테스트 입문 -> 특정 문자 제거하기 https://school.programmers.co.kr/learn/courses/30/lessons/120826 해결 과정 먼저 나는 StringBuilder를 이용하여 문제를 해결하였다 우선 sb 생성 후 반복문에서 문자열의 각 문자와 letter의 한 문자를 비교하도록 한다. letter와 같은 문자를 제거해야하므로, 같지 않을 때의 문자들을 sb에 append()를 이용하여 넣어준다 return은 sb.toString(); 으로 작성하여 출력한다. 다른 사람의 풀이를 보니 문자열의 부가적인 기능 중 하나인 replace를 사용하여 해결하였다. 문자열.replace( a, b); 를 하게 되면 a의 값이 b의 값으로 바.. 2023. 5. 28. JAVA 프로그래머스 [문자 반복 출력하기] 자바 Lv.0 [프로그래머스] 코딩테스트 연습 -> 코딩테스트 입문 -> 문자 반복 출력하기 https://school.programmers.co.kr/learn/courses/30/lessons/120825 해결 과정 반복문을 돌면서 각 문자당 n만큼 반복한 문자열을 반환하는 문제이다. 우선 반복문을 통해 my_string.charAt(i); 을 이용해 문자열의 각 문자를 j < n 까지 반복하면서 각 문자를 n개 만큼 반복시켜 answer에 추가해준다. 그리고 answer을 리턴하면 된다. 소스 코드 class Solution { public String solution(String my_string, int n) { String answer = ""; for (int i = 0; i < my_string.leng.. 2023. 5. 28. JAVA 프로그래머스 [짝수 홀수 개수] 자바 Lv.0 [프로그래머스] 코딩테스트 연습 -> 코딩테스트 입문 -> 짝수 홀수 개수 https://school.programmers.co.kr/learn/courses/30/lessons/120824 해결 과정 우선 배열 answer을 {0,0} 으로 초기화해준다. 그리고 반복문을 돌리면서 만약 num_list[i] % 2 == 0 (짝수) 라면 answer[0] += 1 을 해주고 홀수 라면 answer[2] += 1을 해준다. 소스 코드 class Solution { public int[] solution(int[] num_list) { int[] answer = {0,0}; for (int i = 0; i < num_list.length; i++) { if ( num_list[i] % 2 == 0) { an.. 2023. 5. 27. JAVA 프로그래머스 [직각삼각형 출력하기] 자바 Lv.0 [프로그래머스] 코딩테스트 연습 -> 코딩테스트 입문 -> 직각삼각형 출력하기 https://school.programmers.co.kr/learn/courses/30/lessons/120823 해결 과정 Scanner로 받아온 n을 반복문을 사용하여 1부터 n까지 " * "을 찍는다. i는 0부터 n 미만까지 실행되도록 하고, 이중 for문으로 j는 i+1 미만까지 실행되도록 한다. 별을 한줄에 여러개를 찍는 것은 System.out.print("*"); 로 개행없이 사용하면 되고 다음 줄로 넘어가려면 System.out.priniln(); 을 사용하여 개행하면 된다. 소스 코드 import java.util.Scanner; public class Solution { public static void .. 2023. 5. 27. JAVA 프로그래머스 [문자열 뒤집기] 자바 Lv.0 [프로그래머스] 코딩테스트 연습 -> 코딩테스트 입문 -> 문자열 뒤집기 https://school.programmers.co.kr/learn/courses/30/lessons/120822 해결 과정 우선 문자열을 배열로 변환하는 과정이 필요하다. 먼저 answer 배열을 만들기 위해 문자열의 길이인 my_String.length(); 을 사용한다. 문자열의 글자를 char 타입으로 받아오기 위해 java.lang.String 클래스의 charAt() 메소드를 사용한다. (이 메소드는 문자열의 i번째 문자를 char 타입으로 리턴 할 수 있음) for (int i = 0; i < my_string.length(); i++) { sep[i] = my_string.charAt(i); } 그리고 answer .. 2023. 5. 27. JAVA 프로그래머스 [배열 뒤집기] 자바 Lv.0 [프로그래머스] 코딩테스트 연습 -> 코딩테스트 입문 -> 배열 뒤집기https://school.programmers.co.kr/learn/courses/30/lessons/120821 해결 과정 먼저 num_list 배열의 크기만큼 answer 배열을 생성한다. 반복문을 돌면서 num_list의 값들을 answer의 반대되는 순서로 넣어준다. answer배열을 return 해준다. 소스 코드 class Solution { public int[] solution(int[] num_list) { int[] answer = new int[num_list.length]; for (int i = 0; i 2023. 5. 26. 이전 1 ··· 3 4 5 6 7 8 다음 728x90 반응형