728x90
프리코딩테스트 2-4
2) Number Pick
오답 노트 코드
import java.util.*;
public class Solution {
public static int solution(int[] A, int K) {
HashSet<Integer> combinations = new HashSet<>();
// 모든 가능한 두 자리 숫자의 조합을 생성하여 집합에 추가
for (int i = 0; i < A.length; i++) {
for (int j = 0; j < A.length; j++) {
if (i != j) { // 중복을 허용하지 않음
int number = A[i] * 10 + A[j];
combinations.add(number);
}
}
}
// 집합을 내림차순으로 정렬
List<Integer> sortedCombinations = new ArrayList<>(combinations);
Collections.sort(sortedCombinations, Collections.reverseOrder());
// K번째로 큰 숫자 반환
return sortedCombinations.get(K - 1);
}
}
문제 풀이 코멘트
set을 사용하여 중복없이 만들 수 있는 두자리 숫자를 모두 구한다음 리스트로 변환하여 내림차순으로 정렬해 K번째의 숫자를 반환하는 방식이다. 문제를 잘못읽고 예시만을 보고 두번째로 큰 수를 구하려고만 해서 점수를 만점못받은 기억이 있다. 예시로 문제를 이해하는 것도 좋지만 문제를 먼저 잘 읽어보는것도 중요하다고 배웠다...
728x90
'공log > [P&B]' 카테고리의 다른 글
[P&B] #26 Programmers (0) | 2023.08.13 |
---|---|
[P&B] #25 Programmers (0) | 2023.08.12 |
[P&B] #23 PreCodingTest (0) | 2023.08.10 |
[P&B] #22 PreCodingTest (0) | 2023.08.09 |
[P&B] #21 PreCodingTest (0) | 2023.08.08 |