z2soo's Blog

[백준] 1157 단어 공부 본문

Algorithm/Algorithm 문제풀이

[백준] 1157 단어 공부

z2soo 2022. 12. 30. 15:14
반응형

문제

 

1157번: 단어 공부

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

www.acmicpc.net

 

풀이

word = input().upper()
checked = []
num_now = 0

for _ in word:
  if _ not in checked:
    checked.append(_)
    n = word.count(_)
    if num_now == n:
      word_result = "?"    
    elif num_now < n:
      num_now = n
      word_result = _     

# 이 부분 때문에 틀린 답이 되어 주석처리함
#  if word_result == "?":
#    break
    
print(word_result)

 

Point

  • 반복문으로 단어의 알파벳 하니씩 체크하니 '시간초과' 오류 발생
    > 체크 리스트를 만들어 체크한 알파벳은 넘어가도록 조건 추가
  • "?" 값이 나오는 경우 종료하도록 하니 '틀림'
    > 처음에는 동일한 갯수의 알파벳들이 있을 수 있지만 나중에 가장 많이 등장하는 알파벳이 있을 수 있음을 간과
    > 해당 로직 지워서 해결

 

반응형

'Algorithm > Algorithm 문제풀이' 카테고리의 다른 글

[백준] 2677 단지번호 붙이기  (0) 2023.03.19
[백준] 1260 DFS와 BFS  (0) 2023.03.19
[백준] 2178 미로탐색  (1) 2023.03.19
[백준] 2838 행렬 덧셈  (0) 2022.11.27
Comments