반응형
https://www.acmicpc.net/problem/1157
1157번: 단어 공부
알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.
www.acmicpc.net
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개 이상이면 '?'를 출력하고 아니면 인덱싱을 이용해서 그 위치에 대응하는 문자를 출력하는 코드를 짰다.
세트를 사용 했던 비슷한 문제이니 참고 하자.
백준 1159번 농구 경기 파이썬
라이브러리로 이용하면 간단한 코딩으로도 나타 낼 수 있다. 하지만 아직 덜 배웠기 때문에 지금 까지 배운 리스트 , 세트 정도로 코딩을 해봤다. list1 = [] list2 = [] n = int(input()) for i in range(n): li..
thingjin.tistory.com
반응형
'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 |