문제
https://school.programmers.co.kr/learn/courses/30/lessons/120890
설계
파이썬
def solution(array, n):
minV , minI = 100, 0
array.sort() # 가장 가까운 수가 여러 개일 경우 더 작은 수를 return하기 위해 정렬
for i in range(len(array)):
if abs(n - array[i]) < minV:
minV = abs(n - array[i])
minI = i
return array[minI]
자바스크립트
function solution(array, n) {
let answer = 0
let minAbs = 100
for (let i = 0; i < array.length; i++) {
if (Math.abs(array[i] - n) < minAbs) {
answer = array[i]
minAbs = Math.abs(array[i] - n)
} else if (Math.abs(array[i] - n) === minAbs) { // 가까운 정도가 같을 때 더 적은 숫자가 answer
if (answer > array[i]) {
answer = array[i]
}
}
}
return answer;
}
'PS (Problem Solving) > Programmers' 카테고리의 다른 글
[프로그래머스] k의 개수 - 파이썬 (0) | 2023.01.22 |
---|---|
[프로그래머스] 중복된 문자 제거 - 파이썬 (0) | 2023.01.22 |
[프로그래머스] 369게임 - 파이썬, 자바스크립트 (0) | 2023.01.22 |
[프로그래머스] 영어가 싫어요 - 파이썬, 자바스크립트 (0) | 2023.01.22 |
[프로그래머스] 인덱스 바꾸기 - 파이썬 (0) | 2023.01.22 |