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
소스 코드
파이썬
def solution(array, commands):
answer = []
for command in commands:
temp_list = array[command[0] - 1 : command[1]]
temp_list.sort() # 재할당 필요없이 그냥 리스트가 정렬됨
answer.append(temp_list[command[2] -1])
return answer
자바스크립트
function solution(array, commands) {
var answer = [];
for (command of commands) {
temp_array = array.slice(command[0] - 1, command[1])
temp_array.sort((a, b) => a - b) // sort() 입력시 문자열 형태로 정렬됨에 유의
answer.push(temp_array[command[2] - 1])
}
return answer;
}
풀이 과정
문제에서 시키는 대로 문자열을 자르고, 정렬하고, k번째 원소를 answer 배열에 넣으면 된다.
파이썬에서는 name = list[a:b] 시 list의 a ~ b-1번째 원소가 name에 들어가고
자바스크립트에서는 var name = list.slice(a, b)로 동일한 동작을 수행할 수 있다.
숫자의 정렬은 파이썬에서는 list.sort()로 그냥 list의 원소를 오름차순으로 정렬할수 있지만
자바스크립트에서는 array.sort() 사용시 문자열로 처리되어 정렬이 되기 때문에 원하는 대로 숫자의 대소관계로 정렬이 되지 않으므로, array.sort((a, b) => a - b)를 사용하였다.
'알고리즘 문제 풀이 > 프로그래머스' 카테고리의 다른 글
프로그래머스 - 폰켓몬 [파이썬] (0) | 2022.05.09 |
---|---|
프로그래머스 - 체육복 [파이썬] [자바스크립트] (0) | 2022.05.08 |
프로그래머스 - 모의고사 [파이썬] [자바스크립트] (0) | 2022.05.07 |
프로그래머스 - 완주하지 못한 선수 [파이썬] [자바스크립트] (0) | 2022.05.07 |
프로그래머스 - 소수 만들기 [파이썬] [자바스크립트] (0) | 2022.05.07 |