[백준] 1157번 : 단어 공부 - [Python]

JunHyuk Kwon(권준혁)·2021년 12월 18일
0

링크: [백준] 1157번 : 단어 공부

문제

풀이

word = input().lower() #모든 문자를 .lower()를 이용해서 소문자로 만든다.
# ex)[M, i, s, s, i, s, s, i, p, i] => [m, i, s, s, i, s, s, i, p, i]
word_list=list(set(word)) #새로운 리스트에는 중복되지 않는 문자들을 만든다.(set)
# [m, i, s, p]
cnt = [] # [m, i, s, p]에 각각 몇 개씩 출현했는지 저장한다.

for i in word_list: # i는 m, i, s, p가 된다.
    count = word.count(i) # 예를 들어서, m일 때는, word 리스트 안에 m이 몇 개 있는지 센다.
    cnt.append(count) # for문이 모두 종료되면, cnt 리스트에 m, i, s, p 순서로 각각 몇 개가 있었는지가 저장된다.
if cnt.count(max(cnt))>=2: # 최대값이 같은 경우가 발생하면 True다.
    print("?")
else:
    print(word_list[cnt.index(max(cnt))].upper())#cnt의 최대값이 있는 것의 인덱스를 찾아서 출력한다.

후기

문자열 문제는 파이썬으로 푸는 것이 편하다. c++로 풀려면 기본 함수가 별로 없어서 손이 많이 간다.
단계별 문제풀이에서 문자열 부분은 파이썬으로 다 풀어봐야겠다.

profile
LinkedIn: https://url.kr/f537lz

0개의 댓글