본문 바로가기
알고리즘/백준 solved.ac PS

[백준][solved.ac][Bronze 1][Python] 11383번 : 뚊

by 빛밤하늘 2021. 4. 27.
반응형

밑의 링크는 백준에서의 문제 링크입니다.

 

11383번: 뚊

입력의 첫 번째 줄에 N, M (1 ≤ N, M ≤ 10)이 주어진다. 다음 N개의 줄의 각 줄에는 M개의 문자가 주어진다. 다음 N개의 줄의 각 줄에는 2M개의 문자가 주어진다. 모든 문자는 영문 알파벳 대문자 혹

www.acmicpc.net

 

 

 

 

 

 

 

 

파이썬 코드와 결과입니다.

# 첫 번째 줄에 N, M을 입력합니다.
# 1 <= N, M <= 10
N, M = map(int, input().split(' '))

# M개의 문자로 주어지는 첫 번째 이미지를 뜻하는 한 줄을 저장하는 리스트 변수를 선언합니다.
origin_words = []
# 2M개의 문자로 주어지는 두 번째 이미지를 뜻하는 한 줄을 저장하는 리스트 변수를 선언합니다.
twice_or_not_words = []

# 결과를 저장하는 변수를 선언합니다.
# 첫 번째 이미지를 늘려 두 번째 이미지가 되지 않는 경우를 판단할 것이기 때문에
# Eyfa로 초기화해줍니다.
result = "Eyfa"

# N개의 줄만큼 반복해봅니다.
for i in range(N):
    # 길이가 M인 문자 한 줄을 입력합니다.
    # 영문 알파벳 대, 소문자로만 입력합니다.
    word = input()

    # 입력한 한 줄의 단어를 origin_words에 넣어줍니다.
    origin_words.append(word)

# N개의 줄만큼 반복해봅니다.
for i in range(N):
    # 길이가 2M인 문자 한 줄을 입력합니다.
    # 영문 알파벳 대, 소문자로만 입력합니다.
    word = input()
    
    # 입력한 한 줄의 단어를 twice_or_not_words에 넣어줍니다.
    twice_or_not_words.append(word)

# M개의 길이인 첫 번째 이미지를 뜻하는 단어들과
# 2M개의 길이인 두 번째 이미지를 뜻하는 단어들이 각각 N개만큼 있으므로
# N개만큼 반복해봅니다.
for index in range(N):
    # origin_words에서 한 단어를 2배로 늘릴 때 그 2배로 늘린 단어를 저장하는 변수를 선언합니다.
    twice_origin_word = ''

    # origin_words에서 뽑은 현재의 단어에서 한 알파벳씩 반복해봅니다.
    for alphabet in origin_words[index]:
        # 현재의 알파벳 2개를 twice_origin_word에 넣어줍니다.
        twice_origin_word += alphabet * 2

    # 원래 단어를 2배로 늘린 것과 입력한 2배 단어가 같지 않다면
    if twice_origin_word != twice_or_not_words[index]:
        # 결과 변수에 Not Eyfa를 저장합니다.
        result = "Not Eyfa"
        # 첫 번째로 주어진 이미지를 가로로 두 배로 늘렸을 때
        # 두 번째 이미지가 되지 않는 경우가 하나라도 생겼으므로
        # 반복문을 탈출합니다.
        break

# 결과를 출력합니다.
print(result)

결과

 

 

 

※ 궁금한 부분, 이상한 점 및 오타는 댓글에 부탁드립니다.

※ 더 효율적이고 빠른 정답을 환영합니다.

반응형

댓글