Lumpy Space Princess - Adventure Time
코딩테스트/백준

백준 [1157] - 단어 공부

yaebb_82 2022. 8. 20.

 

 

 

문제

 

 

 

작성한 코드

import sys

input = sys.stdin.readline

word = input().rstrip().lower()
word_list = list(set(word))

arr = list()

for i in word_list:
    arr.append(word.count(i))

if arr.count(max(arr)) >= 2:
    print("?")
else:
    b = arr.index(max(arr))
    print(word_list[b].upper())

- sys.stdin.readline을 input에 할당하여 사용하였다.

- input()으로 문자를 받되, rstrip()으로 오른쪽에 생성되는 엔터를 삭제해주고, 해당 문자열을 lower()을 통해서 전부 소문자로 바꾸어준다.

- word 안에 중복을 제거하기 위해 set을 선언해주고, 해당 set을 list로 바꾸어 word_list에 저장한다.

- for i in word_list: 반복문 for문으로 word_list를 하나씩 차례대로 꺼내 i에 할당하고, word 안에 할당된 i가 몇 개가 있는지 count()로 계산하여 해당 값을 append()를 통해 list형인 arr에 추가해준다.

- max()를 통해 arr의 최대값을 구하고, 해당 값이 arr에서 몇 개인지 count()로 계산한다.

- if~else~ 조건문을 활용하여 count()로 계산한 값이 2 이상일 경우, 가장 많이 사용된 알파벳이 여러 개 존재한다는 의미이므로 print()를 통해 ?를 출력한다.

- count()로 계산한 값이 2 미만일 경우(= 1 이하), arr의 최대값을 갖는 index를 arr에서 찾아 b에 저장한다. 그리고 word_list에서 인덱스가 b인 것을 print()로 출력하되, upper()를 사용하여 대문자가 출력되도록 한다.

 

 

 

반응형

'코딩테스트 > 백준' 카테고리의 다른 글

백준 [2908] - 상수  (0) 2022.08.20
백준 [1152] - 단어의 개수  (0) 2022.08.20
백준 [2675] - 문자열 단계  (0) 2022.08.20
백준 [10809] - 알파벳 찾기  (0) 2022.08.12
백준 [11720] - 숫자의 합  (0) 2022.08.11

댓글