본문 바로가기
백준

[백준] 1157번 : 단어 공부 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트

by 우당탕탕 개발자 2023. 6. 30.
728x90
반응형

 

 

1157번: 단어 공부

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

www.acmicpc.net

 

1. 문제 설명

2. 풀이과정

  1. 변수 S를 생성하고 문자열을 입력받는다. S = input()
  2. 대소문자를 구분하지 않으므로 알파벳 개수의 크기를 갖는 리스트를 만들고 0으로 초기화해 준다. count = [0] * 26
  3. 각 알파벳을 사용하기 위한 반복문을 구현한다. for i in range(97, 123)
  4. 입력받은 문자열의 문자를 하나씩 추출한다. for j in S
  5. 추출한 문자가 각 해당 알파벳의 소문자이거나 대문자이면 if (j == chr(i)) or (j == chr(i - 32))
  6. 해당 알파벳 위치의 개수에 1을 증가시킨다. count[i - 97] += 1
  7. 알파벳의 개수를 저장한 리스트에서 최댓값(가장 많이 사용된 알파벳)을 추출한다. Max = max(count)
  8. 만약 알파벳 개수의 최댓값(가장 많이 사용된 알파벳)이 여러 개이면 if (count.count(Max) >= 2)
  9. ?를 출력한다. print("?")
  10. 최댓값(가장 많이 사용된 알파벳)이 1개이면 추출한 최댓값(가장 많이 사용된 알파벳)을 알파벳 대문자로 출력한다. else: print(chr(count.index(Max) + 65))
반응형

3. 소스코드

S = input()
count = [0] * 26

for i in range(97, 123):
    for j in S:
        if (j == chr(i)) or (j == chr(i - 32)):
            count[i - 97] += 1

Max = max(count)

if (count.count(Max) >= 2):
    print("?")
else:
    print(chr(count.index(Max) + 65))
728x90
반응형