
처음에는 그냥 가볍게 풀다가, 가장 가까운 수가 더 작아 차이값이 음수가 나오는 경우도 고려해야 했다.
결국 set 자료형을 활용해서 풀었다. map자료형과 다르게, set 자료형은 백준에서 한 번 밖에 활용하지 않아,
아직은 활용이 낯설다. 하지만 코테에서는 꽤나 빈출하는 자료형이고, 중복체크에는 set이 괜찮아보여서
앞으로도 자주 활용할 예정.
class Solution {
public int solution(int[] array, int n) {
int answer = 0;
int l = array.length;
int[] array2 = new int[l];
boolean sameDistance = false; // 같은거리여부
Set <Integer> set = new HashSet<>();
for (int i=0; i<l; i++) {
set.add(array[i]);
array2[i] = Math.abs(array[i]-n);
}
Arrays.sort(array2);
if (set.contains(n-array2[0])) {
answer = n-array2[0];
} else {
answer = n+array2[0];
}
return answer;
}
}'프로그래머스 문제풀이 > Level 0' 카테고리의 다른 글
| 컨트롤 제트 (자바, Java) (0) | 2022.12.01 |
|---|---|
| 소인수분해 (자바, Java) (0) | 2022.12.01 |
| 옹알이(1) (자바, Java) (0) | 2022.11.27 |
| 구슬을 나누는 경우의 수 (자바, Java) (0) | 2022.11.27 |
| 모스부호 (1) (자바, Java) (0) | 2022.11.27 |