반응형
문제
- 정수 n을 기준으로 n과 가까운 수부터 정렬하려고 합니다. 이때 n으로부터의 거리가 같다면 더 큰 수를 앞에 오도록 배치합니다. 정수가 담긴 배열 numlist와 정수 n이 주어질 때 numlist의 원소를 n으로부터 가까운 순서대로 정렬한 배열을 return하도록 solution 함수를 완성해주세요.
제한사항
- 1 ≤ n ≤ 10,000
- 1 ≤ numlist의 원소 ≤ 10,000
- 1 ≤ numlist의 길이 ≤ 100
- numlist는 중복된 원소를 갖지 않습니다.
입출력 예

코드1
def solution(numlist, n):
answer = []
nunder_list = []
nover_list = []
for num in numlist:
if num >= n:
nover_list.append(num)
else:
nunder_list.append(num)
nover_list = sorted(nover_list, reverse=True)
nunder_list = sorted(nunder_list)
for _ in range(len(numlist)+1):
if len(nover_list) == 0:
for nunder in reversed(nunder_list):
answer.append(nunder)
break
if len(nunder_list) == 0:
for nover in reversed(nover_list):
answer.append(nover)
break
if (nover_list[-1] - n) <= (n - nunder_list[-1]):
answer.append(nover_list[-1])
nover_list.pop()
else:
answer.append(nunder_list[-1])
nunder_list.pop()
return answer
코드2(lambda 추가예정)
출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges
반응형
'프로그래머스 > Level_0' 카테고리의 다른 글
| [프로그래머스] Lv.0 - 저주의 숫자 3.py (0) | 2026.05.16 |
|---|---|
| [프로그래머스] Lv.0 - OX퀴즈.py (0) | 2026.04.18 |
| [프로그래머스] Lv.0 - 문자열 밀기.py (0) | 2026.04.06 |
| [프로그래머스] Lv.0 - 연속된 수의 합.py (0) | 2026.04.06 |
| [프로그래머스] Lv.0 - 다음에 올 숫자.py (0) | 2026.04.06 |