본문 바로가기
Algorithm/구현

[Python3] 백준 1157번 단어 공부

by HANNI하니 2022. 12. 29.

1157번: 단어 공부 (브론즈1)

문제

 

1157번: 단어 공부

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

www.acmicpc.net

정답

리스트 set, append, count, index 함수를 활용하는 형태

input = 'Mississipi'

word = 'MISSISSIPI'

unique_word = [M,I,S,P]

cnt_list = [1,4,4,1]

word = input().upper() #대문자로 출력 
unique_word = list(set(word)) #고유 알파벳 리스트 저장
cnt_list = []

for i in unique_word:
	cnt = word.count(i) #고유알파벳이 몇개 있는지 count
	cnt_list.append(cnt) #개수를 list에 입력

if cnt_list.count(max(cnt_list)) >= 2: #최대값이 2개 이상인 경우
	print("?")
else:
	max_index = cnt_list.index(max(cnt_list)) #최대값의 index(위치) 찾고
	print(unique_word[max_index]) #위치에 해당하는 알파벳 출력

 

공부한 내용

1. 함수 정리

set(집합) 함수 : 중괄호 사용. 중복된 값은 자동 제거. 순서가 없어서 어떤 값이 먼저 출력되는 지 알 수 없다.

s = set([1,3,5,7]) = {1,3,5,7} = {1,3,3,5,5,5,7}

 

index 함수 : 원소가 몇번째로 처음 등장했는지 알려준다.

a_list.index(1)

a_list.index('python')

찾고자 하는 원소 인덱스가 없으면 ValueError 발생한다.

 

sort 함수 : 리스트 요소를 순서대로 정렬

a_list.sort()

 

reverse 함수 : sort와 반대가 아니라, 현 리스트를 거꾸로 뒤집기

a_list.reverser()

 

count 함수 : 몇개 있는지 개수 세기

a_list.count()

 

 


레퍼런스

  • 함수 설명
 

02-3 리스트 자료형

`[추천 동영상 강의]` : [https://www.youtube.com/watch?v=x6W7t0KkTAc](https://www.youtube.com/watch?v=x6W7t…

wikidocs.net

 

18. set(집합)

## 1. set(집합) - set은 수학에서 이야기하는 집합과 비슷합니다. - 순서가 없고, 집합안에서는 unique한 값을 가집니다. - 그리고 mutable 객체입니다.…

wikidocs.net

  • 정답 깃허브
 

GitHub - yyeongeun/codingtest: 코딩테스트 공부

코딩테스트 공부. Contribute to yyeongeun/codingtest development by creating an account on GitHub.

github.com

 

댓글