Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- dfs
- Express
- TypeScript
- 게임
- typeORM
- AWS
- 정렬
- game
- 공룡게임
- Queue
- Nest.js
- react
- 자료구조
- nestjs
- class
- jest
- JavaScript
- nodejs
- Sequelize
- OCR
- mongoose
- Python
- flask
- cookie
- Bull
- MongoDB
- MySQL
- Dinosaur
- GIT
Archives
- Today
- Total
포시코딩
[프로그래머스][Lv.0] 가까운 수 본문
728x90
문제
https://school.programmers.co.kr/learn/courses/30/lessons/120890
내 풀이
def solution(array, n):
array.sort()
answer = array[0]
x = abs(n - array[0])
for e in array:
if x > abs(n - e):
x = abs(n - e)
answer = e
return answer
answer = array[0]
x = abs(n - array[0])
위 두 값에 대해 초기값 세팅하고 들어가는게 중요하다.
다른 풀이
def solution(array, n):
array.sort(key=lambda x: (abs(x-n), x-n))
return array[0]
sort()의 인자로 전달할 수 있는 key=lambda를 사용해 푼 방법이다.
또한 정렬함수의 key=lambda의 계산식에서 두 번째 인자가 있으면
첫 번째 인자로 정렬한 값들에 대해 추가로 정렬해준다.
이로인해 가장 가까운 수가 여러 개일 때 더 작은 수를 리턴 할 수 있게 된다.
sorted()로 나타내면 아래와 같다.
def solution(array, n):
return sorted(array, key=lambda x: (abs(x-n), x-n))[0]
728x90
'자료구조알고리즘 > 문제풀이' 카테고리의 다른 글
[프로그래머스][Lv.0][재귀] 종이 자르기 (0) | 2023.01.08 |
---|---|
[프로그래머스][Lv.0] 숨어있는 숫자의 덧셈 (2) (0) | 2023.01.07 |
[프로그래머스][Lv.0] A로 B 만들기 (0) | 2023.01.07 |
[프로그래머스][Lv.0] 팩토리얼 (0) | 2023.01.05 |
[프로그래머스][Lv.0] 합성수 찾기 (0) | 2023.01.05 |