Koala - 14기/기초 알고리즘 스터디

[백준/Java] 11383번 : 뚊

Rodin 2024. 5. 13. 00:22

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

문제 분석

분류

  • 문자열
  • 구현

문제 설명

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

입력

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

출력

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

소스코드

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        int N = Integer.parseInt(st.nextToken());
        int M = Integer.parseInt(st.nextToken());
        StringBuilder sb = new StringBuilder();
        StringBuilder sb2 = new StringBuilder();
        for (int i = 0; i < N; i++) {
            String[] word = br.readLine().split("");
            for (int j = 0; j < M; j++) {
                sb.append(word[j]);
                sb.append(word[j]);
            }
        }
        for (int i = 0; i < N; i++) {
            sb2.append(br.readLine());
        }
        String sb3 = sb.toString();
        String sb4 = sb2.toString();
        if (sb3.equals(sb4)) {
            System.out.println("Eyfa");
        } else System.out.println("Not Eyfa");
    }
}

문제풀이

- BufferReader 사용해 받은 문자열들을 각 문자들을 2개씩으로 늘려 StringBuilder에 저장
- 나중에 받은 문자열들을 한꺼번에 또다른 StringBuilder에 저장
- 위 두 StringBuilder가 같은지 검사.