본문 바로가기
알고리즘

[Python] 백준1157번: 단어 공부

by 내 코딩 2023. 2. 10.
반응형

코드

n = input().upper()
nn = list(set(n))

n_list = []
for i in nn:
    count = n.count(i)
    n_list.append(count)

if n_list.count(max(n_list)) > 1:
    print('?')
else:
    max_index = n_list.index(max(n_list))
    print(nn[max_index])

설명

변수. n에 문자를 입력받는다.

중복되는 문자열을 리스트에 담는다.

개수를 센 수를 넣을 빈 리스트를 만든다.

중복된 문자열을 제거한 변수를 반복문에 넣어 문자 하나씩 읽는다.

입력받은 문자 n에서 반복문 i를 통해 문자 하나씩의 개수를 센다.

그 개수를 빈 리스트에 넣는다.

n_list의 개수를 세는데 n_list에서 가장 큰 값을 센다.

이 때 리스트에서 가장 큰 값의 개수를 센다.

ex) [1,2,3,3] 숫자가 이렇게 있으면 가장 큰 값인 count(3)을 넣을거고 3의 개수는 2개 있으니 2가 나올거다.

개수를 세서 1이 넘으면 ?를 출력하고

그게 아니라면 n_list에서 가장 큰 값의 위치를 index를 통해 가져온다.

그 max_index를 nn에서 출력하면 그 문자가 나온다. 

댓글