https://www.acmicpc.net/problem/10219
문제
abbb
aabb
aa..
이런식으로 고기 모양이 주어지는데, 같은 영어 소문자는 고기 한덩이다.
이 고기들을 90도/180도/270도/반전 하여 겹치지 않게 주어진 그리드 안에서(h*w) 고기를 뒤집는 것
=> 고기 한덩이가 붙어 있도록 회전 or 반전 시키면 됨
reverse()
#include <algorithm>
int a[5] = {1,2,3,4,5}
reverse(a, a+4);
// 결과값
4,3,2,1,5로 배열 전체가 뒤집어져있음
string의 배열 개념
#include <string>
string array[3];
array[0] = "abbb";
array[1] = "aabb";
array[2] = "aa..";
//배열 각각이 string으로 되어 있다는 뜻
//결과값
abbb
aabb
aa..
string array
0 |
1 |
2 |
abbb |
aabb |
aa.. |
이런식으로 string이 배열의 1칸에 담겨있다는 말!
array[0].begin()
=> array 배열의 0번째에 담긴 string 'abbb' 의 첫번째 문자를 가리키는 반복자 iterator 포인터 반환
// Baekjook 10219
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
string gogi[11];
void flip(int x, int y) {
for (int j = 0; j < y; j++) {
//각 배열칸에 담긴 문자열 뒤집고 출력
reverse(gogi[j].begin(), gogi[j].end());
cout << gogi[j] << endl;
}
}
int main() {
int testcase;
cin >> testcase;
while (testcase) {
int h, w;
cin >> h >> w;
for (int i = 0; i < h; i++) {
cin >> gogi[i];
}
//모양그대로 뒤집기만 하면 됨
flip(w,h);
testcase--;
}
}
'[알고리즘] 문제풀이 연습' 카테고리의 다른 글
[DP] 백준 - 2133 타일 문제 3*n !!복습필수!! (0) | 2019.07.04 |
---|---|
[DP] 백준 11726, 11727 - 2xn 타일링 (0) | 2019.07.04 |
3) 알고리즘 : 정렬 - 삽입정렬(Insertion Sort) (0) | 2019.07.03 |
백준 3052 - 나머지 : [c++ STL] set 이용 (0) | 2019.07.02 |
2) 알고리즘 : 정렬 - 버블정렬(Bubble Sort) (0) | 2019.07.01 |