[백준 1157] 단어공부
문제
풀이
#20291번 풀었을 때 처럼 사전을 이용해서 풀었다.
생각보다 복잡하게 푼 것 같아서 다른 사람이 푼 코드를 참고했다.
소스코드
내가 푼 코드
w=input().lower()
L={}
for i in range(len(w)):
if w[i] in L :
L[w[i]]=L[w[i]]+1
else :
L[w[i]]=1
L_list = list(L) #가장 첫 값을 max로 설정하기 위해 key값으로만 이루어진 리스트 생성
max = L[L_list[0]]
max_word=L_list[0]
cnt=0 #cnt 초기화
for i in range(len(L)): #가장 많이 등장하는 단어 탐색
if L[L_list[i]] > max :
max= L[L_list[i]]
max_word=L_list[i]
cnt=1
for i in range(len(L)): #?가 나오는 상황 찾기 위해
if L[L_list[i]]==max :
if L_list[i] != max_word :
cnt=2
if cnt == 2: print('?')
else : print(max_word.upper())
scvhero님 코드
from statistics import*
try:t=mode(input().upper())
except:t='?'
print(t)
모듈을 import 해왔다.
statistics 모듈에서 mode는 최빈값을 구하게 해준다.
BlockDMask님 코드
words = input().lower()
words_list = list(set(words))
word_count = list()
for i in words_list:
count = words.count(i)
word_count.append(count)
if(word_count.count(max(word_count)) >= 2):
print('?')
else:
print(words_list[(word_count.index(max(word_count)))].upper())
- 집합 set을 이용하면 중복값을 제거 가능하다.
- count(i)하면 i의 갯수가 몇개인지 세준다. --> for문으로 갯수 세지 않아도 됨.
- 리스트.index(a)하면 리스트에서 원소 값이 a인 첫 번째 원소의 index를 반환한다.
Author And Source
이 문제에 관하여([백준 1157] 단어공부), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jaenny/백준-1157-그대로-출력하기2저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)