728x90
시간 제한 : 1초
메모리 제한 : 128MB
입력
첫째 줄에 왼쪽 위 부분의 행의 개수 R과 열의 개수 C가 주어진다. (1 ≤ R, C ≤ 50)
다음 R개 줄에는 C개의 문자 '.' 또는 '#'가 주어진다.
마지막 줄에는 에러의 위치 A와 B가 주어진다. (1 ≤ A ≤ 2R, 1 ≤ B ≤ 2C)
출력
카드 뒷 면 전체 디자인을 총 2R개 줄에 걸쳐서 출력한다. 각 줄은 2C개의 문자로 이루어져 있어야 한다.
소스코드
#include <iostream> #include <string> #include <algorithm> using namespace std; int main(void) { int r, c, a, b; string parts[50]; string card[100]; cin >> r >> c; for (int i = 0; i < r; i++) cin >> parts[i]; cin >> a >> b; for (int i = 0; i < r; i++) { string tmp = parts[i]; reverse(tmp.begin(), tmp.end()); card[i] = parts[i] + tmp; } for (int i = 0; i < r; i++) card[r * 2 - 1 - i] = card[i]; if (card[a - 1][b - 1] == '#') card[a - 1][b - 1] = '.'; else card[a - 1][b - 1] = '#'; for (int i = 0; i < r * 2; i++) cout << card[i] << '\n'; }
Tip
단순 구현문제다. algorithm의 reverse를 이용하면 대칭 구현하기가 더 쉽다.
728x90
'Computer Science > Algorithm Problem' 카테고리의 다른 글
백준] 2966 - 찍기(COCI 2008/2009) (0) | 2018.05.29 |
---|---|
백준] 2947 - 나무 조각(COCI 2008/2009) (0) | 2018.05.28 |
백준] 2877 - 4와 7(COCI 2010/2011) (0) | 2018.05.25 |
백준] 2504 - 괄호의 값(KOI 2008 지역본선) (0) | 2018.05.24 |
백준] 14954 - Happy Number (0) | 2018.05.21 |