집합자료형
1. 중복이 없다.
2. 순서가 없다.(dic은 순서가 있음)
=> 유니크한 list정도로 보면 되지 않을까....
새로 알게된 내용
max를 이용해서 최고값을 리스트에서 찾을수있다.
count를 이용하여 중복되는 개수를 한번에 구할 수 있다.
문제는 단어에 대해서 많이 중복된 것을 찾아서 알파벳을 출력하는 것이다. 만약 가장 큰 중복 개수가 2개 이상이면 "?"를 출력한다.
1. 단어에서 유니크한 알파벳을 뽑아낸다.
2. 유니크한 알파벳이 몇개씩 존재하는지 개수를 센다.
3. 최고개수가 2개 이상이면 "?"를 출력, 1개면 해당 알파벳 출력
string = input().upper()
uniquelist = list(set(string)) # 집합자료형을 사용하여 유니크한 값을 가져온다.
cntlist=[]
for x in uniquelist:
cnt = string.count(x) # 단어에 해당 알파벳의 개수를 센다.
cntlist.append(cnt) # 유니크 알파벳 순서대로 최고 개수가 들어간다.
if cntlist.count(max(cntlist))>1: # 알파벳의 최고개수를 구하여 몇개나 중복되는지 검증
print("?")
else:
max_index = cntlist.index(max(cntlist)) # 최고개수의 알파벳 위치를 구한다.
print(uniquelist[max_index]) # 해당 알파벳의 위치를 통해 알파벳을 출력한다.
'알고리즘' 카테고리의 다른 글
백준 2775 풀이 (0) | 2021.02.07 |
---|---|
백준 1193 풀이 (0) | 2021.02.07 |
#2 알고리즘 공부 2/6 리뷰 (0) | 2021.02.06 |
백준 1065 풀이 (python) (0) | 2021.02.06 |
#1 알고리즘 공부 시작! (0) | 2021.02.04 |