반응형
// 문제 요약
N개의 정수로 구성된 배열 A를 받으면
A에 속해있지 않은 양의 정수 중
최소값을 구하는 함수를 짜라.
// 물제 풀이
문제가 간단하다.
풀이도 간단할지 한번 보자.
우선은 양의 정수 중에서 최소값을 구하므로
A의 최대값이 음수인 경우는
무조건 1이 return되어야 한다.
그리고 중복된 값들은 그냥 지나가도 되므로
Counter의 key만을 이용할 수 있다는 것을 알 수 있다.
코드부터 한번 보자.
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
import collections
import sys
def solution(A):
# write your code in Python 3.6
# 1. All elements is negative.
if max(A) <= 0:
return 1
nums = [n for n in range(1, max(A) + 1 + 1)]
counted = collections.Counter(A)
for key in counted.keys():
if key <= 0:
continue
else:
nums[key - 1] = sys.maxsize
return min(nums)
이번 역시 MinMax problem 이므로
sys.maxsize를 사용해주었다.
사실 if 문의 continue 부분은
조건을 반대로 걸어서 없애도 되는 부분인데
가독성을 위해서 남겨두었다.
list comprehension, sys, collections 등 많은 요소가
복합적으로 작용된 좋은 문제다.
반응형
'Coding Test > Codility' 카테고리의 다른 글
[ Codility 코딜리티 ] Lesson 5 CountDiv Python 파이썬 풀이 (0) | 2021.04.17 |
---|---|
[ Codility 코딜리티 ] Lesson 4 PermCheck Python 파이썬 (0) | 2021.04.17 |
[ Codility 코딜리티 ] Lesson 4 MaxCounters Python 파이썬 풀이 (0) | 2021.04.17 |
[ Codility 코딜리티 ] Lesson 4 FrogRiverOne Python 파이썬 풀이 (0) | 2021.04.17 |
[ Codility 코딜리티 ] Lesson 3 TapeEquilibrium Python 파이썬 풀이 (0) | 2021.04.17 |
댓글