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가 같은지 검사.