매일 매일 성장하는 섭섭군

[Seop's의 코드풀이] 백준 9933 민균이의 비밀번호 - Python 본문

알고리즘 문제풀이/백준

[Seop's의 코드풀이] 백준 9933 민균이의 비밀번호 - Python

섭섭군 2020. 5. 12. 11:54
반응형

이번에 풀어볼 문제는 백준 9933번인 민균이의 전화번호라는 문제입니다.

문제는 다음과 같습니다.

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

 

9933번: 민균이의 비밀번호

문제 창영이는 민균이의 컴퓨터를 해킹해 텍스트 파일 하나를 자신의 메일로 전송했다. 파일에는 단어가 한 줄에 하나씩 적혀있었고, 이 중 하나는 민균이가 온라인 저지에서 사용하는 비밀번호이다. 파일을 살펴보던 창영이는 모든 단어의 길이가 홀수라는 사실을 알아내었다. 그리고 언젠가 민균이가 이 목록에 대해서 얘기했던 것을 생각해냈다. 민균이의 비밀번호는 목록에 포함되어 있으며, 비밀번호를 뒤집어서 쓴 문자열도 포함되어 있다. 예를 들어, 민균이의 비밀번호가

www.acmicpc.net

 

 

문제를 요약해보자면 다음과 같습니다.

주어진 단어(비밀번호) 중 반전 시켜서 2개가 되는 문자열을 찾는다.

해당 문자열의 길이와 가운데 있는 글자를 출력한다.

 

간단하죠?

저는 딕셔너리를 이용해서 해당 문제를 풀었습니다.

전체적인 코드는 다음과 같습니다.

피드백과 질문은 언제나 감사드립니다.

import sys
input = sys.stdin.readline

N = int(input())
password =  dict()

for _ in range(N) :
    word = input().rstrip()
    rev_word = word[::-1]
    if word in password :
        password[word] += 1
    elif rev_word in password :
        password[rev_word] += 1
    else :
        password[word] = 1

result = sorted(password.items(), key= lambda x: -x[1])
word = result[0][0]
middle = word[len(word)//2]
answer = str(len(word)) + " " +  str(middle)
print(answer)
반응형
Comments