본문 바로가기
문제 해결/CodeUp

[CodeUp] [C++] [기초 100제] 1098번 설탕과자 뽑기

by WSLim_97 2022. 12. 6.
반응형

https://codeup.kr/problem.php?id=1098&rid=0 

 

[기초-2차원배열] 설탕과자 뽑기

C언어기초100제v1.2 : @컴퓨터과학사랑, 전국 정보(컴퓨터)교사 커뮤니티/연구회 - 학교 정보(컴퓨터)선생님들과 함께 수업/방과후학습/동아리활동 등을 통해 재미있게 배워보세요.  - 모든 내용

codeup.kr


코드

#include <iostream>
using namespace std;

int main() {
	int h, w, n, l, d, x, y;
	int a[100][100] = { };
	cin >> h >> w;
	cin >> n;

	for (int i = 0; i < n; i++) {
		cin >> l >> d >> x >> y;

		a[x][y] = 1;
		if (d == 0) {
			for (int j = 1; j < l; j++) {
				a[x][y + j] = 1;
			}
		}
		else {
			for (int j = 1; j < l; j++) {
				a[x + j][y] = 1;
			}
		}
	}

	for (int i = 1; i <= h; i++) {
		for (int j = 1; j <= w; j++) {
			cout << a[i][j] << " ";
		}
		cout << "\n";
	}

	return 0;
}

풀이

세로 h, 가로 w의 크기를 가지는 격자판에 입력받은 조건의 막대를 놓는 문제이다.

 

n개의 막대를 격자판에 놓는데 막대의 길이는 l, 방향은 d, 좌표 x, y를 활용한다.

 

x, y에 의한 좌표를 먼저 1로 바꾸고 가로 세로에 따라 가로면 열 증가, 세로면 행 증가시키고 그 길이는 d에 맞추어 증가시키게 하였다.

반응형