본문 바로가기
파이썬/파이썬 알고리즘

[swea - 파이썬] 1204. [S/W 문제해결 기본] 1일차 - 최빈수 구하기

by Go! Jake 2021. 7. 28.

 

  풀이

T = int(input())
for test_case in range(1, T + 1):
    # ///////////////////////////////////////////////////////////////////////////////////
    _testcase=int(input())
    array=list(map(int,input().split()))
    _max = 0

    for value in range(101):
        if array.count(value) ==0:
            continue
        elif array.count(value) >= array.count(_max):
            _max=value

    print("#{} {}".format(_testcase, _max))
    # ///////////////////////////////////////////////////////////////////////////////////

이 문제는 최빈수를 구하는 문제로, 문제는 단순하지만 기본적으로 리스트 내의 원소를 특정 조건을 걸어 찾는 문제이다.

 

array=list(map(int,input().split()))을 사용하여 입력되는 모든 원소를 리스트에 담았다. 

for문을 통해 0부터 100까지의 값을 입력되게끔 구성한다.

이 때 .count() 함수를 사용하면 count 내의 값의 개수를 세어준다.

 

따라서, array.count(value)를 사용하면 value가 몇 개 인지 세어 주는 함수를 사용하게 되는 것이다.

if array.count(value) == 0: value 값의 개수가 하나도 없다면, continue로 다음 값을 검토한다.

 

if array.count(value) >= array.count(_max): 현재 최대 개수의 값인 _max 개수보다 크면, value가 _max가 된다.

 

따라서 최종적으로 어떤 값이 가장 큰 값인지 알 수 있다.

 

 

 

댓글