본문 바로가기

ETC

[LV1] K번째 수 Python

반응형

https://programmers.co.kr/learn/courses/30/lessons/42748

 

코딩테스트 연습 - K번째수

[1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3]

programmers.co.kr

 

내가 제일 좋아하는 문제다.

 

파이썬 리스트 인덱싱 및 슬라이싱의 정수를 보여준다.

추가로 함수형 프로그래밍도~!

 

한 5번 정도 반복해서 풀어보길 추천한다.

참고로 맵 함수 안에 맵 함수를 넣을 때에는

(이 경우는 아님)

맨 안에 있는 맵 오브젝트를 자료형으로 변경해줘야 한다.

 

이는 마지막 호출 시에도 마찬가지이다.

 

아래 코드를 안에서부터 설명하면

커맨드의 모든 원소 x(리스트)에 대해 array에

0,1 : 슬라이싱을 적용하고, 정렬한 뒤

2 : 해당 인덱스의 값을 가져오는 작업을 수행한다.

 

마지막은 리스트로 바꿔줘지 않으면 맵 오브젝트가 나온다.

이는 단순히 수행 명령에 대한 정의만 하고,

호출 시에 맵 함수를 적용하기 때문이다.

lazy evaluation에 대해 찾아보자.

 

def solution(array: list, commands: list) -> list:
    return list(map(lambda x: sorted(array[x[0] - 1:x[1]])[x[2]-1], commands))
반응형

'ETC' 카테고리의 다른 글

[LV1] 프로그래머스 2016년 python  (0) 2020.10.03
[LV1] 체육복 Python  (0) 2020.10.03
[LV1] 모의고사 python  (0) 2020.10.03
[LV1] 완주하지 못한 선수 python  (0) 2020.10.03
[LV1] 프로그래머스 최대값 구하기 mysql  (0) 2020.10.03