Computer language and framework/GO
[GO] 프로그래머스 > 코딩테스트 입문 > 가까운 수
WhiteGoblin
2024. 10. 26. 17:14
반응형
문제 설명
정수 배열 array와 정수 n이 매개변수로 주어질 때, array에 들어있는 정수 중 n과 가장 가까운 수를 return 하도록 solution 함수를 완성해주세요.
제한사항
- 1 ≤ array의 길이 ≤ 100
- 1 ≤ array의 원소 ≤ 100
- 1 ≤ n ≤ 100
- 가장 가까운 수가 여러 개일 경우 더 작은 수를 return 합니다.
입출력 예
array | n | result |
[3,10,28] | 20 | 28 |
[10,11,12] | 13 | 12 |
입출력 예 설명
입출력 예 #1
- 3, 10, 28 중 20과 가장 가까운 수는 28입니다.
입출력 예 #2
- 10, 11, 12 중 13과 가장 가까운 수는 12입니다.
사고회로
- 우선 값 비교 하는것을 기준으로 분류
- 분류 이후 for 문에서 값을 answer 에 둠
- 이후 업데이트 되면 해당 값을 answer 에 업데이트 함
- 거리가 같으면 더 적은 값인지 확인 이후 값 업데이트
import (
"math"
)
func solution(array []int, n int) int {
answer := 0
for _, v := range array {
compare := v - n
if answer == 0 {
answer = v
} else if math.Abs(float64(compare)) < math.Abs(float64(answer - n )) {
answer = v
} else if math.Abs(float64(compare)) == math.Abs(float64(answer - n )) {
if answer > v {
answer = v
}
}
}
return answer
}
느낀점?
- 사고를 다르게 하니 생각보다 쉽게 해결한 문제.
반응형