기초 프로그래밍/Python

[백준] 1157번 파이썬 python(단어 공부)

Chaerry._o 2023. 9. 4. 18:02
반응형

▷ 문제

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

 

전체 코드

x = input().upper()
y = list(set(x))

y_list = []

for i in y:
    count = x.count(i)
    y_list.append(count)

if y_list.count(max(y_list)) > 1:
    print("?")
else:
    y_max = y_list.index(max(y_list))
    print(y[y_max])

 

코드 분석

x = input().upper()
y = list(set(x))

변수 x에 입력한 문자열을 대문자로 저장한다.

input() 함수를 사용해 입력 받은 요소를 문자열로 변수에 저장한다. upper() 함수를 사용해 입력 받은 문자열을 모두 대문자로 바꾼다.

 

리스트 y에 변수 x에 저장된 문자열의 중복값을 제거하여 각각 리스트에 저장한다.list() 함수를 사용해서 괄호 안에 요소를 각각 리스트에 저장한다. set() 함수를 사용해서 문자열의 중복값을 제거한다.

 

y_list = []

리스트 y_list에 빈 리스트를 저장한다.

 

for i in y:
    count = x.count(i)
    y_list.append(count)

for 문을 사용해 리스트 y에 요소를 하나씩 i에 넣는 반복문을 만든다.

 

count() 함수를 사용해서 변수 x에 저장된 문자열에서 i의 개수를 변수 count에 저장한다.

append() 함수를 사용해 i의 개수를 빈 리스트인 y_list에 저장한다.

 

if y_list.count(max(y_list)) > 1:
    print("?")
else:
    y_max = y_list.index(max(y_list))
    print(y[y_max])

if 문을 사용해 조건문을 만든다.

 

리스트 y_list의 최대값의 수가 2개 이상일 때 ?를 출력한다.

 

리스트 y_list의 최대값의 수가 1개일 때는 index() 함수를 사용해 리스트 y_list에서 가장 많은 문자의 index의 위치를 찾은 후,

리스트 y에서 그 index의 위치에 있는 문자를 출력한다.

반응형