728x90
반응형
문제
- 정수 배열 array와 정수 n이 매개변수로 주어질 때, array에 들어있는 정수 중 n과 가장 가까운 수를 return 하도록 solution 함수를 완성해주세요.
제한사항
- 1 ≤ array의 길이 ≤ 100
- 1 ≤ array의 원소 ≤ 100
- 1 ≤ n ≤ 100
- 가장 가까운 수가 여러 개일 경우 더 작은 수를 return 합니다.
입출력 예시
- 입출력 예 1
- 3, 10, 28 중 20과 가장 가까운 수는 28입니다.
- 입출력 예 2
- 10, 11, 12 중 13과 가장 가까운 수는 12입니다.
※ 공지 - 2023년 3월 29일 테스트 케이스가 추가되었습니다. 기존에 제출한 코드가 통과하지 못할 수도 있습니다.
코드 1
def solution(array, n):
answer = 0
less_num_list = []
more_num_list = []
for num in array:
if num < n:
less_num_list.append(num)
else:
more_num_list.append(num)
try:
if abs(max(less_num_list) - n) <= abs(min(more_num_list) - n):
answer = max(less_num_list)
else:
answer = min(more_num_list)
except:
if len(less_num_list) > 0:
answer = max(less_num_list)
else:
answer = min(more_num_list)
return answer
코드 2
def solution(array, n):
answer = 0
array = sorted(array)
max_num = 101
for num in array:
if abs(num - n) < max_num:
max_num = abs(num-n)
answer = num
return answer
출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges
728x90
반응형
'프로그래머스 > Level_0' 카테고리의 다른 글
[프로그래머스] Lv.0 - 간단한 논리 연산.py (0) | 2024.09.26 |
---|---|
[프로그래머스] Lv.0 - 한 번만 등장한 문자.py (0) | 2024.09.26 |
[프로그래머스] Lv.0 - A로 B 만들기.py (0) | 2024.09.26 |
[프로그래머스] Lv.0 - 숨어있는 숫자의 덧셈 (2).py (0) | 2024.09.26 |
[프로그래머스] Lv.0 - 팩토리얼.py (0) | 2024.09.26 |