상세 컨텐츠

본문 제목

백준 1157 - 단어공부 (파이썬)

알고리즘/백준 단계별 문제

by 테크투아트 2021. 1. 11. 22:22

본문

www.acmicpc.net/problem/1157

 

1157번: 단어 공부

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

www.acmicpc.net

어제는 unity 프로젝트때문에 알고리즘을 하루 쉬었다.

지금 dp를 공부하고 있는데 단계별 문제풀이로 다시 돌아가서 풀어보기로 했다.

 

유니티 C# 을 배울 때, 주석을 먼저 달고 코딩을 하는데

오늘은 조금 단계들이 긴 것 같아서 한글로 먼저 풀어쓴 뒤 코딩을 해보았다.

역시 명확해진다!!!! 굿굿

글로 먼저 쓰고 코딩하는 거 다들 시도해보세요~ㅎㅎㅎㅎ

 

# 먼저 대문자로 모두 바꾼다.
word = input().upper()

# 차례대로 검사하면서, 딕셔너리에 대문자 : 개수 순으로 담는다.
# 딕셔너리 선언
wordCount = {}

for i in word:
    # 만약에 딕셔너리에 이미 있으면 다시 셀 필요없이 그냥 그 값을 뱉는다.
    if i in wordCount:
        continue
    else:
        wordCount[i] = word.count(i)

# 딕셔너리 value들중에 가장 큰 수를 뽑는다.
maxNum = max(wordCount.values())

# 가장 큰수를 value로 가지고 있는 문자를 리스트에 넣는다.
answer = []
for i in wordCount:
    if wordCount[i] == maxNum:
        answer.append(i)
        
# 리스트 길이가 2이상이면 ?를 출력한다.
if len(answer) > 1:
    print("?")
# 아니면 리스트에 있는 아이를 출력한다.
else:
    print(answer[0])

관련글 더보기