알고리즘/백준(BOJ)

[백준/BOJ/알고리즘/파이썬(python)]#1157: 단어 공부 [문자열]

https://www.acmicpc.net/problem/1157

 

1157번: 단어 공부

알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.

www.acmicpc.net

브론즈 등급의 문제라서 금방 풀 줄 알았는데 

생각보다 구조를 짜기가 어려웠다.

 

처음엔 아스키코드를 이용해서 ord()함수를 이용해서 풀고있는데 잘 안되서

카운트한 정보 넣은 리스트를 만들고

max의 인덱스를 리스트에서 뽑아서 출력하는 구조 짜는 방향으로 바꾸었다.

 

대소문자 상관없다고 했으므로 upper()함수를 사용하면 대소문자 따로 카운트하지 않아도 된다.

 

파이썬 코드

#1157_단어공부

word = input().upper()

#alpha = list(range(97,122))
#Alpha = list(range(65, 90))

cntalp = []
for i in set(word):
    cntalp.append(word.count(i))

pos = [i for i, x in enumerate(cntalp) if x==max(cntalp)]

if len(pos)>1: print("?")
else: print(list(set(word))[cntalp.index(max(cntalp))])