1 분 소요

최빈값 구하기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)]

image-20231108234130210

Day3 까지 완료!

쉬운 문제는 바로 풀고 한 번 더 보고싶은 문제만 모아서 정리하겠습니다.

업데이트:

댓글남기기