알고리즘 연습/구현, 문자열

[🥉1 / 백준 11383 / 파이썬] 뚊

김세진 2022. 3. 13. 00:34
반응형

 

 

11383번: 뚊

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

www.acmicpc.net

 

문제

정우는 "뚊"과 "돌돔"을 의미하는 두 이미지를 받았다. 과연 두 그림이 같은지 검사해보자. 즉 N× M 크기의 이미지와 N ×2 M 크기의 이미지가 주어질 때 첫 번째 이미지를 가로로 두 배로 늘이면 두 번째 이미지가 되는지 검사하는 프로그램을 작성하라.

입력

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

출력

첫 번째로 주어진 이미지를 가로로 두 배로 늘렸을 때 두 번째 이미지가 된다면 "Eyfa"을 출력하고, 되지 않는다면 "Not Eyfa"을 출력한다.

 

예제 입력 1

1 5
ABCDE
AABBCCDDEE

예제 출력 1

Eyfa


예제 입력 2

1 5
ABCDE
AABBCCDDEF

예제 출력 2

Not Eyfa


예제 입력 3

2 2
AB
CD
AABB
CCDD

예제 출력 3

Eyfa




 

풀이

 

첫 번째 이미지로 입력받는 문자열을 하나씩 분리하여 2배 크기로 만든다.

그리고 두 번째 이미지로 입력받는 문자열과 일치하는지 확인한 뒤 정답을 출력한다.

 

import sys
input = sys.stdin.readline

n,m = map(int,input().split())
A,B = "",""

for _ in range(n):
    for i in input().rstrip():
        A += i*2
        
for _ in range(n):
    B += input().rstrip()
    
print('Eyfa' if A==B else 'Not Eyfa')

 

다음과 같이 join을 이용하여 리스트를 비교하게 작성할 수도 있다.

 

import sys
input = sys.stdin.readline

n,m = map(int,input().split())

A = ["".join([i*2 for i in input().rstrip()]) for _ in range(n)]
B = ["".join(input().rstrip()) for _ in range(n)]
    
print('Eyfa' if A==B else 'Not Eyfa')
반응형