문제 : https://www.acmicpc.net/problem/3076


[ 알고리즘풀이 ]

 R,C,A,B 를 입력받으면 (R * A) X (C * B) 크기의 Map을 규칙에 맞춰서 출력하면 됩니다.

 이때, 'X' 를 표시해야 되는 부분의 규칙을 살펴보면 행을 A로 나눴을 때 짝수이고 열을 B로 나눴을 때, 짝수인 경우와 행을 A로 나눴을 때 홀수이면서 열도 B로 나눴을 때 홀수인 경우만 'X' 를 출력하면 된다는 것을 확인할 수 있습니다.

#include<iostream>

using namespace std;

int main(void) {
	ios::sync_with_stdio(false);
	cin.tie(0); cout.tie(0);

	int R, C, A, B;
	cin >> R >> C >> A >> B;
	for (int i = 0; i < R * A; i++) {
		for (int j = 0; j < C * B; j++) {
			if ((i / A) % 2 == 0 && (j / B) % 2 == 0)
				cout << 'X';
			else if ((i / A) % 2 == 1 && (j / B) % 2 == 1)
				cout << 'X';
			else
				cout << '.';
		}
		cout << '\n';
	}
}

 

+ Recent posts