새소식

⌨️ Algorithms/백준

[Python] 백준 1157번_단어 공부

2022. 7. 19. 22:31

  • -

https://www.acmicpc.net/problem/1157

 

1157번: 단어 공부

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

www.acmicpc.net

 

s = input().upper() # 문자열을 모두 대문자로 변경
unique_s = list(set(s)) # 문자열에서 중복값 제거 

cnt_list = [] # 문자별 등장 횟수
for i in unique_s:
  s_cnt = s.count(i) # count()로 문자별 등장 횟수 계산
  cnt_list.append(s_cnt) # cnt_list에 등장 횟수 넣기

if cnt_list.count(max(cnt_list)) > 1: # 가장 많이 사용된 알파벳이 여러 개 존재하는 경우
  print('?')
else:
  max_idx = cnt_list.index(max(cnt_list)) # 가장 많이 등장한 알파벳의 인덱스
  print(unique_s[max_idx])

 

가장 많이 사용된 알파벳이 여러 개 존재하는 경우를 찾기 위해 'cnt_list.count(max(cnt_list)) > 1'을 사용하려면 
입력받은 문자열을 set()으로 중복 값을 제거해야 됨

 

  • set()
    • 리스트처럼 단일 요소 값 출력 불가
    • list(set()) <- 리스트로 감싸주면 단일 요소 값 출력 가능

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다!