Algorithm/Baekjoon

[Algorithm] 백준 1157번 단어 공부 (Python)

meizzi 2023. 2. 17. 14:33
728x90
반응형

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

 

1157번: 단어 공부

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

www.acmicpc.net

문제

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

입력

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

출력

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

예제 입력 1

Mississipi

예제 출력 1

?

예제 입력 2

zZa

예제 출력 2

Z

예제 입력 3

z

예제 출력 3

Z

예제 입력 4

baaa

예제 출력 4

A

풀이

설명

  • upper() 함수를 통해 모든 문자열을 대문자로 변환하여 집합으로 묶는다.
  • count() 함수를 통해 string 문자열 안에서 원하는 문자의 개수를 cnt에 저장한다.
  • 만일 cnt에 저장된 값 중 가장 큰 값이 1개보다 많으면 ?를 출력한다.
  • 1개 이하면 index() 함수를 통해 가장 큰 값이 몇 번째에 처음으로 등장했는지 확인하여  string_list()에서 해당 위치의 문자열을 찾아 출력한다. 

코드

string = input().upper() # 모든 문자열을 대문자로 변환
string_list = list(set(string))
cnt = []

for i in string_list :
    cnt.append(string.count(i))

if cnt.count(max(cnt)) > 1 :
    print('?')
else :
    print(string_list[cnt.index(max(cnt))])

https://techblogs.tistory.com/37

 

[Python] upper(), lower(), isupper(), islower(), capitalize(), title() : 대소문자 변환 함수

대문자 변환 함수 upper() string.upper() 바꾸고자 하는 문자열(string)을 모두 대문자로 변환 string = 'aaa' string.upper() # AAA capitalize() string.capitalize() 바꾸고자 하는 문자열(string)에서 첫 글자만 대문자로

techblogs.tistory.com

https://techblogs.tistory.com/38

 

[Python] count() 함수 : 문자열, 리스트 개수 집계 함수

count() 함수 string.count(특정 문자, start, end) 문자열 안에서 특정 문자의 개수를 구하는 함수 tuple, list, 집합 등 반복 가능한 iterable 자료형에서도 사용 가능 dictionary, set 자료형에서는 사용 불가능 st

techblogs.tistory.com

https://techblogs.tistory.com/39

 

[Python] index() 함수 : 리스트에서 특정 원소의 인덱스 찾는 함수

index() 함수 string.index(특정 문자, start, end) 리스트 중에서 특정 원소가 몇 번째에 처음으로 등장하는지 알려주는 함수 특정 문자가 2번 이상 중복되는 경우, 가장 앞에 있는 인덱스를 출력한다. str

techblogs.tistory.com

 

728x90
반응형