TODAY TIL

안녕하세요! 이번 포스팅에서는 비밀번호 찾기 문제 와 관련된 흥미로운 코딩 문제를 다뤄보겠습니다. 단계적으로 설명하고 코드 구현을 공유합니다.

 

문제 설명

창영이는 민균이의 컴퓨터에서 비밀번호가 포함된 텍스트 파일을 얻었습니다. 이 파일에는 여러 단어가 줄마다 적혀있으며, 민균이의 비밀번호는 특정 조건을 만족해야 합니다:

  1. 목록에 포함된 단어의 길이는 모두 홀수입니다.
  2. 비밀번호를 뒤집은 형태의 문자열도 목록에 포함되어 있습니다.

목표는 목록에서 비밀번호를 찾아 비밀번호의 길이와 가운데 글자를 출력하는 것입니다.

 

 

문제 해결을 위한 단계별 접근 방법

1단계: 입력받기

  • 첫째 줄에 단어의 개수 NN이 주어집니다.
  • 이후 NN개의 단어를 입력받아 words 리스트에 저장합니다.
# 입력 받기
N = int(input())
words = [input().strip() for _ in range(N)]

2단계: 단어와 뒤집은 단어 비교

  • 모든 단어에 대해 해당 단어의 뒤집힌 형태가 리스트에 있는지 확인합니다.
    • 예를 들어, 단어가 "tulipan"이라면, 뒤집은 형태는 "napilut"입니다.
  • 이를 위해 for 루프를 사용해 words 리스트의 각 단어를 순회하며 뒤집힌 단어가 words에 있는지 검사합니다.
# 비밀번호 찾기
password = ""
for word in words:
    reversed_word = word[::-1]  # 단어 뒤집기
    if reversed_word in words:  # 뒤집은 단어가 목록에 있는지 확인
        password = word
        break

 

3단계: 비밀번호 길이와 가운데 글자 찾기

  • 비밀번호를 찾았다면:
    • 길이는 len(password)로 구할 수 있습니다.
    • 가운데 글자는 (길이 // 2) 인덱스를 통해 찾습니다.
# 비밀번호 길이와 가운데 글자 찾기
length = len(password)
middle_char = password[length // 2]

 

4단계: 결과 출력

  • 비밀번호의 길이와 가운데 글자를 한 줄에 출력합니다.
# 결과 출력
print(length, middle_char)

 

전체 코드

아래는 전체 코드를 정리한 것입니다.

# 1. 입력 받기
N = int(input())
words = [input().strip() for _ in range(N)]

# 2. 비밀번호 찾기
password = ""
for word in words:
    reversed_word = word[::-1]
    if reversed_word in words:
        password = word
        break

# 3. 비밀번호 길이와 가운데 글자 찾기
length = len(password)
middle_char = password[length // 2]

# 4. 결과 출력
print(length, middle_char)

 

예제와 결과

예제 입력

4
tulipan
napilut
apple
banana

 

예제 출력

7 i

요약

이 문제는 문자열을 뒤집어 비교하는 방법과 문자열의 가운데 글자를 찾는 기본적인 접근 방식을 통해 해결할 수 있습니다. 단계별로 문제를 나누고 각 단계에서 필요한 작업을 순차적으로 구현하면 쉽게 답을 구할 수 있습니다.

+ Recent posts