알고리즘

[프로그래머스] 정렬 - K번째 수

ghtis1798 2020. 12. 24. 17:57

프로그래머스 정렬 문제 풀이

 

프로그래머스 - K번째 수 문제

def solution(array, commands):
  # array는 0~100수
  # commands는 100 x 3
  answer = []

  for i in range(len(commands)):
    start = commands[i][0]
    end = commands[i][1]
    k = commands[i][2]

    cut = array[start-1:end]
    cut.sort()
    answer.append(cut[k-1])

  return answer

테스트 결과

문제는 간단히 해결할 수 있었지만 다른 풀이들을 보며 배울 점이 많았습니다.

특히 map()과 lambda와 sorted()함수를 사용해 단 두 줄만에 작성한 코드도 있었습니다.

lambda와 map, sorted관련해서 간단히 정리해보고 활용해봐야겠습니다.

# list에 map 적용하기
list_n = [3.3,5.5,1.1,4.4,7.7]
list_n = list(map(int, list_n))
print(list_n)

# 적용된 결과 정렬
print(sorted(list_n))

map은 list외에도 반복 가능한 객체에 대해서 적용이 가능합니다.

# list외에 반복가능한 객체들에 대해서 map 적용이 가능하다.
list_str = list(map(str, list_n))
print(list_str)

 

 

참고한 사이트

dojang.io/mod/page/view.php?id=2286

 

파이썬 코딩 도장: 22.6 리스트에 map 사용하기

이번에는 리스트에 map을 사용해보겠습니다. map은 리스트의 요소를 지정된 함수로 처리해주는 함수입니다(map은 원본 리스트를 변경하지 않고 새 리스트를 생성합니다). list(map(함수, 리스트)) tupl

dojang.io

programmers.co.kr/learn/courses/30/lessons/42748?language=python3

 

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

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

programmers.co.kr

wikidocs.net/16041

 

위키독스

온라인 책을 제작 공유하는 플랫폼 서비스

wikidocs.net