정렬
-
[프로그래머스] Python - 더 맵게메모/알고리즘 2022. 4. 1. 00:40
코딩테스트 연습 - 더 맵게 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같 programmers.co.kr 정렬을 이용하는 문제다. 최소 힙을 사용해서 지속적으로 최소값 2개를 빼오고 그 결과를 다시 넣는 형태로 구현했다. 여기까지의 구현은 정말 누구나 생각할 수 있고 쉬운 난이도인데 -1을 출력하는 조건에서 살짝 고민을 했다. K 이상의 맵기를 만들 수 없는 상황이면 2개의 최소값을 뽑아 올 수 없는 상황이라고 생각하고 여러 번 조건을 바꿔봐도 마지막 TC에서 오답처리 되길래 다른 사람의 코드를 보니 Index Error로 예외처리를 해주는 것을 확인했..
-
[프로그래머스] Python - 가장 큰 수메모/알고리즘 2022. 2. 3. 00:33
코딩테스트 연습 - 가장 큰 수 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 programmers.co.kr 프로그래머스의 정렬 레벨2 문제다. 사전식 정렬을 이용하는데 반례가 존재한다. "30" ,"3" # 답 "330" # 반례 "303" 위와 같은 두 수를 문제의 의도대로라면 큰 수가 앞에 와야하는데 사전식 정렬을 이용하면 "30"이 "3"보다 앞에 오게 된다. 이 문제 해결을 위해 각 값에 3을 곱했다. 3을 곱한 이유는 천의 자리의 조건을 맞추기 위해서다. "3" -> "333" "30" -> "..