celina의 이것저것
[C++] 백준 11383번 - 뚊 본문
반응형
문제
정우는 "뚊"과 "돌돔"을 의미하는 두 이미지를 받았다. 과연 두 그림이 같은지 검사해보자. 즉 N× M 크기의 이미지와 N ×2 M 크기의 이미지가 주어질 때 첫 번째 이미지를 가로로 두 배로 늘이면 두 번째 이미지가 되는지 검사하는 프로그램을 작성하라.
입력
입력의 첫 번째 줄에 N, M (1 ≤ N, M ≤ 10)이 주어진다. 다음 N개의 줄의 각 줄에는 M개의 문자가 주어진다. 다음 N개의 줄의 각 줄에는 2M개의 문자가 주어진다. 모든 문자는 영문 알파벳 대문자 혹은 소문자이다.
출력
첫 번째로 주어진 이미지를 가로로 두 배로 늘렸을 때 두 번째 이미지가 된다면 "Eyfa"을 출력하고, 되지 않는다면 "Not Eyfa"을 출력한다.
접근
string문자열을 배열이라고 생각하고 풀면 된다
코드
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <limits.h>
#include <algorithm>
#include <string>
#include <vector>
#include <math.h>
#include <cmath>
#include <cstring>
using namespace std;
bool check = true;
int main()
{
int n,m;
cin >> n >> m;
string str[n];
string str2[n];
string tmp[n];
for(int i=0; i<n; i++) {
cin >> str[i];
}
for(int i=0; i<n; i++) {
cin >> tmp[i];
}
for(int i=0; i<n; i++) {
for(int j=0; j<str[i].size(); j++) {
str2[i] +=str[i][j];
str2[i] +=str[i][j];
}
if(str2[i]!=tmp[i]) {
check = false;
}
}
if(check)
{
cout<<"Eyfa"<<endl;
}
else{
cout<<"Not Eyfa"<<endl;
}
return 0;
}
리뷰
처음에 접근은 2차원배열로 접근해야겠다고 생각했다
1. 배열을 3개 만든다 (원래 문자열배열, 2배늘린배열, 비교대상인 배열)
2. str배열에 ABCDE를 입력하고
3. tmp배열에 AABBCCDDEE를 입력한다
4. 여기서부터 어려웠는데 str배열만큼의 길이만큼 이중반복문을 돌면서 문자열을 2배로 늘린다
=> 그냥 기존 문자열을 하나씩 더 찍으면 되는거엿음;;;;;;;; 알고보니 생각보다 넘 쉬워서 당황;;;;
5. 그리고 비교하면 된다
출처
https://www.acmicpc.net/problem/11383
11383번: 뚊
입력의 첫 번째 줄에 N, M (1 ≤ N, M ≤ 10)이 주어진다. 다음 N개의 줄의 각 줄에는 M개의 문자가 주어진다. 다음 N개의 줄의 각 줄에는 2M개의 문자가 주어진다. 모든 문자는 영문 알파벳 대문자 혹
www.acmicpc.net
'자료구조&알고리즘 > 백준' 카테고리의 다른 글
[C++] 백준 1652번 - 누울 자리를 찾아라 (0) | 2023.08.03 |
---|---|
[C++] 백준 16395번 - 파스칼의 삼각형 (0) | 2023.07.29 |
[C++] 백준 2669번 - 직사각형 네개의 합집합의 면적 구하기 (0) | 2023.07.05 |
[C++] 백준 1357번 - 뒤집힌 덧셈 (0) | 2023.07.05 |
[C++] 백준 8958번 - OX퀴즈(getline, cin.ignore함수) (0) | 2023.07.05 |
Comments