전체 글(121)
-
[programmers] 폰켓몬 (java) -1level
문제 설명 당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다. 홍 박사님 연구실의 폰켓몬은 종류에 따라 번호를 붙여 구분합니다. 따라서 같은 종류의 포켓몬은 같은 번호를 가지고 있습니다. 예를 들어 연구실에 총 4마리의 폰켓몬이 있고, 각 폰켓몬의 종류 번호가 [3번, 1번, 2번, 3번]이라면 이는 3번 폰켓몬 두 마리, 1번 폰켓몬 한 마리, 2번 폰켓몬 한 마리가 있음을 나타냅니다. 이때, 4마리의 폰켓몬 중 2마리를 고르는 방법은 다음과 같이 6가지가 있습니다. 첫 번째(3번), 두 번째(1번) 폰켓몬을 선택 첫 번째(3번), 세 번째(2번) 폰켓몬을 선택 첫..
2022.03.05 -
[programmers] K번째 수 (java) -1level
문제 설명 문제 해결 import java.util.ArrayList; import java.util.Collections; public class k번째수 { public int[] solution(int[] array, int[][] commands) { int[] answer = new int[commands.length]; ArrayList list = new ArrayList(); for (int i = 0; i < commands.length; i++) { for (int a = commands[i][0]-1; a < commands[i][1]; a++) { list.add(array[a]); } Collections.sort(list); // 정렬 answer[i] = list.get(com..
2022.03.03 -
[programmers] 3진법 뒤집기 (java) -1level
문제 설명 문제 해결 굳이 다시 뒤집을 필요 없게 answer에 n % 3을 차근차근 쌓아준다. 반복문을 벗어나서 남은 n까지 문자열을 붙여주고 Integer.parseInt(String타입 , 3진법)을 이용한다. 위 식을 사용한다면 3진법 -> 10진법으로 나타낼 수 있다, public class 삼진법뒤집기 { public int solution(int n) { String answer = ""; while(n >= 3){ answer += n % 3; n /= 3; } answer += n; return Integer.parseInt(answer,3); } }
2022.03.02 -
[programmers] 두 개 뽑아서 더하기 (java) -1level
문제 설명 문제 해결 Set Collection 중에서 중복 없는 HashSet을 이용한다. 서로 다른 인덱스의 값을 더해주고 배열로 가져와 오름차순으로 정렬해주었더니 문제가 풀렸다. import java.util.ArrayList; import java.util.Arrays; import java.util.HashSet; import java.util.Set; public class 두개뽑아서더하기 { public int[] solution(int[] numbers) { Set set = new HashSet(); for (int i = 0; i < numbers.length; i++) { for (int j = i + 1; j < numbers.length; j++) { set.add(numbers[..
2022.03.01 -
[programmers] 소수 만들기 (java) -1level
문제 설명 문제 해결 다른 방법이 없을까 하다가 결국 3중 for문을 이용해 인덱스의 값들로만 합을 구했다. 구한 값을 list.add를 통해 넣고 배열로 옮겨준다음 그 배열의 값들이 소수인지 판단하여 문제를 풀어주었다. import java.util.ArrayList; class Solution { public int solution(int[] nums) { int answer = 0; int cnt = 0, sum = 0; ArrayList list = new ArrayList(); // 세개 수의 합을 담을 리스트 for (int a = 0; a < nums.length; a++) { for (int b = a + 1; b < nums.length; b++) { for (int c = b + 1; ..
2022.02.28 -
[programmers] 모의고사 (java) -1level
문제 설명 문제 해결 모든 값들을 다 거쳐서 확인해주면 되는 완탐 문제이다. 1번에서 3번 사람까지 정해져 있으니 people이라는 배열을 3의 크기로 생성하고 people 배열에 맞춘 문제 개수를 넣어주면 된다. 핵심은 각 반복되는 수를 arr 2차원 배열에 넣어주고 반복적으로 발생되는 값을 구현하는 것이다. (% 를 이용하여 반복되는 값을 넣어주자.) import java.util.ArrayList; public class 모의고사 { public int[] solution(int[] answers) { // 1번 12345 2번 21 23 24 25 반복 3번 33 11 22 44 55 반복 int[][] arr = { {1,2,3,4,5}, {2,1,2,3,2,4,2,5}, {3,3,1,1,2,2..
2022.02.27