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
- 게임
- Python
- Queue
- Sequelize
- MySQL
- Express
- class
- JavaScript
- Nest.js
- nodejs
- GIT
- typeORM
- 정렬
- AWS
- OCR
- dfs
- TypeScript
- cookie
- MongoDB
- 공룡게임
- Bull
- flask
- 자료구조
- mongoose
- Dinosaur
- jest
- react
- game
- nestjs
Archives
- Today
- Total
포시코딩
[프로그래머스][Lv.1][정렬] K번째수 본문
728x90
문제
https://school.programmers.co.kr/learn/courses/30/lessons/42748
내 풀이
def solution(array, commands):
return [ getNumber(array, i, j, k) for [i, j, k] in commands ]
def getNumber(array, i, j, k):
return sorted(array[i-1:j])[k-1]
객체 구조 분해 할당을 배운 뒤부터 파이썬에서도 사용 가능한 점을 통해
매우 쉽게 변수 할당을 하고 있다.
리스트 컴프리헨션도 점점 익숙해진다.
풀 때는 result = ~ 를 쓰고 return result 이런식으로 하고선
그 뒤에 다시 저런식으로 깔끔하게 정리하고 있긴한데
처음부터 큰 그림을 그려 쓸데없는 코드가 발생하지 않게 해야겠다.
다만, 걸리는 점은 문제가 '정렬' 카테고리로 분류되있는데 정작 sorted()로 살짝 정렬해주는 부분 밖에 없어
내가 문제 출처의 의도를 잘못 파악했나 고민이 됐다.
다른 풀이를 보면 답이 나오지 않을까.
다른 풀이
def solution(array, commands):
return list(map(lambda x:sorted(array[x[0]-1:x[1]])[x[2]-1], commands))
언젠가부터 다른 풀이에 많이 보이는데
list(map( ))..
한 번 짚고 넘어가야겠다.
lambda도 마찬가지다. 솔직히 위의 저 코드가 어떻게 작동하는지 감이 안오는데
list(map())과 lambda에 대해 공부한 다음 보면 나도 활용할 수 있지 않을까 싶다.
내 풀이+
def solution(array, commands):
return [ sorted(array[i-1:j])[k-1] for [i, j, k] in commands ]
따로 뺐던 함수가 간단하여 아예 한줄로도 나타낼 수 있었다.
풀 때는 왜 이게 보이지 않았던걸까..
아마 중간에 헷갈려서 getNumber 함수 안에 if문이 나왔던 것 때문에 생각하지 못했던게 아닐까 싶다.
728x90
'자료구조알고리즘 > 문제풀이' 카테고리의 다른 글
[프로그래머스][Lv.0] 짝수의 합 (0) | 2022.12.25 |
---|---|
[프로그래머스][Lv.1] 숫자 문자열과 영단어 (0) | 2022.12.25 |
[프로그래머스][Lv.1] 행렬의 덧셈 (0) | 2022.12.25 |
[프로그래머스][Lv.1] 나누어 떨어지는 숫자 배열 (0) | 2022.12.24 |
[프로그래머스][Lv.1] 하샤드 수 (0) | 2022.12.24 |