[코딩 테스트 입문]02
최빈값 구하기Permalink
문제 설명
최빈값은 주어진 값 중에서 가장 자주 나오는 값을 의미합니다. 정수 배열 array
가 매개변수로 주어질 때, 최빈값을 return 하도록 solution 함수를 완성해보세요. 최빈값이 여러 개면 -1을 return 합니다.
제한사항
- 0 <
array
의 길이 < 100 - 0 ≤
array
의 원소 < 1000
입출력 예
array | result |
---|---|
[1, 2, 3, 3, 3, 4] | 3 |
[1, 1, 2, 2] | -1 |
[1] | 1 |
solution
def solution(array):
while len(array) != 0:
for i, a in enumerate(set(array)):
array.remove(a)
if i == 0: return a
return -1
첫 테스트 케이스를 예로 풀어봤을 때,
array의 길이가 0이될 때 까지 멈추지 않습니다. 그리고 set(array)하면 [1, 2, 3, 4]입니다. 원래의 array에서 값을 다 삭제하면 [3, 3]이 됩니다.
i는 set(array)의 인덱스를 나타냅니다. 0부터 3까지 for문이 반복돼서 i는 3입니다. a는 4입니다.
조건문에 해당되지 않으니 재 정의된 array로 반복문을 돌려봅니다. set(array)는 [3] i = 0, a = 3입니다. 조건문에 충족합니다. a를 리턴합니다.
모두 해당되지 않으면 -1을 리턴합니다.
[1, 1, 2, 2]를 보면 set(array)하면 [1, 2]가 됩니다.i = 1 a = 2 조건문을 충족하지 않습니다. 그러나 모든 요소가 remove 돼서 -1이 리턴됩니다.
def solution(array):
answer = 0
idx = [0] * 1001
for i in array:
idx[i] +=1
if idx.count(max(idx)) >1:
return -1
return idx.index(max(idx))
def solution(array):
keys = set(array)
dict = {}
max_freq = []
for key in keys:
dict[key] = array.count(key)
for key in keys:
if dict[key] == max(dict.values()):
max_freq.append(key)
if len(max_freq) > 1:
answer = -1
else:
answer = max_freq[0]
return answer
짝수는 싫어요Permalink
문제 설명
정수 n
이 매개변수로 주어질 때, n
이하의 홀수가 오름차순으로 담긴 배열을 return하도록 solution 함수를 완성해주세요.
제한사항
- 1 ≤
n
≤ 100
입출력 예
n | result |
---|---|
10 | [1, 3, 5, 7, 9] |
15 | [1, 3, 5, 7, 9, 11, 13, 15] |
solution
def solution(n):
sol = []
for i in range(1, n+1):
if i % 2 == 1:
sol.append(i)
return sol
def solution(n):
return [i for i in range(1, n+1, 2)]
Day3 까지 완료!
쉬운 문제는 바로 풀고 한 번 더 보고싶은 문제만 모아서 정리하겠습니다.
댓글남기기