[백준/Python] 1157 단어 공부

2.so_j·2023년 10월 14일
0

코드

text = input()
dict = {}

for t in text:
    if t.upper() in dict:
        dict[t.upper()] += 1
    else:
        dict[t.upper()] = 1

sorted_dict = sorted(dict.items(), key= lambda x:x[1], reverse= True)
max_value = max(sorted_dict, key= lambda x:x[1])

count = 0
for key, value in sorted_dict:
    if value == max_value[1]:
        count += 1

if count > 1:
    print("?")
else:
    print(max_value[0])

처음엔 이렇게 풀었는데 효율적이지 못한 것 같아서 구글링을 했다

text = input().upper()
set_text = list(set(text))
result = []

for t in set_text:
    result.append(text.count(t))

if result.count(max(result)) > 1:
    print("?")
else:
    print(set_text[result.index(max(result))])

기록할 점

  1. 횟수를 기록하는 문제에 접근할 때면 계속 딕셔너리를 쓰는 방법만 생각하는데 set을 이용하는 방법도 생각해보자

  2. upper함수

    text = input().upper()

    하면 input()의 내용이 모두 대문자로 바뀐다.
    text = [x.upper() for x in input()] 이렇게 안써도 된다.

  3. count함수

    찾고자하는 문자열.count('찾으려는 문자')

  4. 딕셔너리 정렬

    sorted(dict.items(), key= lambda x:x[1], reverse= True)

브론즈인데 실버보다 배울 점이 많은 문제였다 !

profile
싱글코어 두뇌의 개발자 도전기

0개의 댓글

관련 채용 정보