단어 공부(1157번)

PearLine_Zero·2024년 3월 15일

하루에 1커밋 CodingTest

목록 보기
55/110
post-thumbnail
  • 티어 : Bronze 1
  • 정답여부 : 정답
  • 알고리즘 유형 : 구현, 문자열
  • 시간 제한 : 1초

💡문제

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

💡입력

첫째 줄에 알파벳 대소문자로 이루어진 단어가 주어진다. 주어지는 단어의 길이는 1,000,000을 넘지 않는다.

💡출력

첫째 줄에 이 단어에서 가장 많이 사용된 알파벳을 대문자로 출력한다. 단, 가장 많이 사용된 알파벳이 여러 개 존재하는 경우에는 ?를 출력한다.

💡예제 입력 1

Mississipi

💡예제 출력 1

?

💡예제 입력 2

zZa

💡예제 출력 2

Z

💡예제 입력 3

z

💡예제 출력 3

Z

💡예제 입력 4

baaa

💡예제 출력 4

A

💡문제요약

입력된 단어중 가장 많이 사용된 알파벳을 대문자로 출력하면 된다. 만약 가장 많이 사용된 알파벳이 중복인 경우는 ?을 출력함

💡알고리즘 설계

  1. 입력받은 단어를 대문자로 변환 그 다음 입력한 단어를 set 함수를 사용하여 중복을 제거하여 list를 만듬
  2. a에 word에 count한 단어 갯수를 담음
  3. a 리스트에 max 숫자를 찾고 그 max 수가 중복일 경우는 ? 출력
  4. 아닌 경우에는 a에 max 함수의 index 반환 그 다음 word_list에 해당 인덱스에 위치한 문자를 가져옴.

💡작성코드

  • python
word = input().upper()  # Zza -> zza 입력 받음
word_list = list(set(word))  # [z,a] 중복없는 배열
a = [] 
for i in word_list:
  a.append(word.count(i))  # [2, 1]
if a.count(max(a)) > 1:
  print("?")
else:
  print(word_list[a.index(max(a))])    

💡틀린 이유 or 수정할 부분

없음

💡틀린 부분 수정 or 다른풀이

없음

💡느낀점 or 기억할 정보

Index가 아직도 헷갈린다. 배열은 익숙하지가 않아..

profile
https://baesaa0304.tistory.com 블로그 이사합니다~

0개의 댓글