haju__log

[python][백준/BOJ] 1157번 : 단어 공부 본문

BOJ_백준

[python][백준/BOJ] 1157번 : 단어 공부

haju 2023. 2. 26. 21:04
반응형

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

 

1157번: 단어 공부

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

www.acmicpc.net

 

에러 난 코드 ,, 답은 맞는데 뭐가 문제일까...

>>

S=input()
S=S.upper()

maxn=0
flag=0
for i in range(len(S)):
    tmp=S.count(S[i])
    if tmp>maxn:
        maxn=tmp
        letter=S[i]
    elif tmp==maxn:
        if letter!=S[i]:
            flag=1
            break
if flag==1:
    print("?")
else:
    print(letter)

 

>> 수정 완!!

1) 단어 대문자로 변경 .upper() 사용

2) set()을 이용해 중복값 없애고 리스트로 만들기 (a리스트)

3) S와 비교해 a리스트에 있는 각 문자의 수를 b리스트에 저장

4) max 값이 같은지 비교문 (if-else) =max 값이 1개인지 여러 개인지로 판별할 수 있음

S=input().upper()
a=list(set(S))
b=[]
for i in range(len(a)):
    b.append(S.count(a[i]))

if b.count((max(b)))>1:
    print("?")
else:
    idx=b.index(max(b))
    print(a[idx])
반응형