반응형
https://www.acmicpc.net/problem/1157
X = input().upper()
Y = list(set(X)) # 중복 되는 단어 합치기
X_count = [] # 몇번 중복 됬는지 Y에 같은 인덱스 자리에 입력
for i in Y:
count = X.count(i)
X_count.append(count)
if X_count.count(max(X_count)) > 1: # 중복된게 2개 이상이면 ?
print('?')
else:
maxid = X_count.index(max(X_count)) # 아니면 그 숫자에 대응하는 문자 출력
print(Y[maxid])
입력받을 때 입력한 문자열을 대문자로 받았다.
세트로 병합하고 인덱스를 사용하기 위해 다시 리스트로 바꿔 주었다.
세트는 순서가 없어서 인덱싱을 활용할 때는 항상 리스트로 바꿔 줘야 한다.
중복된 문자를 for 문으로 돌려 각 자리마다 몇 개 중복되어 있는지 새로운 리스트를 만들어주었다.
이후에 같은 문자가 2개 이상이면 '?'를 출력하고 아니면 인덱싱을 이용해서 그 위치에 대응하는 문자를 출력하는 코드를 짰다.
세트를 사용 했던 비슷한 문제이니 참고 하자.
반응형
'BOJ > Python' 카테고리의 다른 글
백준 1076번 저항 파이썬 (0) | 2021.08.07 |
---|---|
백준 1252번 이진수 덧셈 파이썬 (0) | 2021.08.06 |
백준 2446번 별 찍기 - 9 파이썬 (0) | 2021.08.05 |
백준 2445번 별 찍기 - 8 파이썬 (0) | 2021.08.05 |
백준 2444번 별 찍기 - 7 파이썬 (0) | 2021.08.05 |