Study/코딩

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

Do잇 2023. 3. 8. 21:29

문자열 단계의 최상 난이도였다...😅

 

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

 

1157번: 단어 공부

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

www.acmicpc.net

 

백준 단어공부

 

📝 풀이

 

z=input().upper()
a=list(set(z))
b = []
for i in a:
    count = z.count(i)
    b.append(count)
    
if b.count(max(b)) >=2:
    print('?')
else:
    print(a[(b.index(max(b)))].upper())

 

먼저 변수 z를 설정하고 lower()를 이용해서 입력받은 문자열을 소문자로만 입력받고 set()을 이용해서 자료형의 중복을 제거한 다음 list()로 묶어주었다.

다음으로 가장 많이 사용된 알파벳을 알기 위해서 b 변수를 대괄호를 이용해서 리스트로 초기화 설정하면 된다.

z = mississipi

a = [ 'm' , 'i' , 's' , 'p' ]

 

for i in a:

        count = z.count(i) 

리스트 a 안에 들어있는 각각의 문자들을 for 문으로 반복해주는데  count변수를 새로 만들어서 중복되는 문자를 제거하기 전 입력받은 z 변수에서 그 문자가 몇 개 있었는지 count()를 이용해서 세고, b 변수 리스트에 append() 메소드를 이용하여 추가해준다.

b = [ 4 , 4 , 1 , 1 ]

 

그리고 if 문을 이용해서 만약 b변수 리스트에 가장 큰 값 max(b)를 count()함수를 이용해서 센 개수가 b 변수 리스트 안에 2개 이상이라면 가장 많이 사용된 알파벳이 여러개 존재하는 경우이기 때문에 '?'를 출력해준다.

 

 

 

💡 중복을 허용하지 않는 set의 특징

   - 자료형의 중복을 제거하기 위한 필터 역할로 종종 사용된다.

 

💡 리스트에 포함된 요소 x의 개수 세기(count)

   - list.count(x) 는 리스트 안에 x가 몇 개 있는지 조사하여 그 개수를 돌려주는 함수.

 

💡 리스트에 포함된 요소 x의 위치 반환(index)

  - list.index(x) 는 리스트에 x 값이 있으면 x의 위치 값을 돌려주는 함수.

  - 리스트에 값 x가 존재하지 않으면 값오류가 발생한다.

 

 

 

 

'Study > 코딩' 카테고리의 다른 글

[백준 5622번 파이썬] 다이얼  (0) 2023.03.08
[백준 1152번 파이썬] 단어의 개수  (0) 2023.03.08
[백준 10172번 파이썬] 개  (0) 2023.02.06
[백준 10950번 파이썬] A + B - 3  (0) 2023.02.05
[백준 8393번 파이썬] 합  (0) 2023.02.05