코드업(CodeUp) 풀이/C언어 기초 100제

코드업[CodeUp] (C) 1098번 풀이

개발윗미 2021. 8. 23. 15:33

C로 구현한 1098번 설탕과자 뽑기 문제 풀이입니다.

 

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

 

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

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

codeup.kr


#include <stdio.h>

int main() {
	int h,w,n, l, d, x, y; //세로, 가로, 막대수, 막대길이, 방향, 좌표  
	scanf("%d %d", &h, &w);
	int p[101][101] = {0, };
	
	scanf("%d", &n);
	for(int i=1; i<=n; i++) {
		scanf("%d %d %d %d", &l, &d, &x, &y);
		int count = 0;
		for(int j=1; j<=l; j++) {
			if(d == 0) { //가로 
				p[x][y+count] = 1;
				count++;
			} else {
				p[x+count][y] = 1;
				count++;
			}
		}
	}
	for(int i=1; i<=h; i++) {
		for(int j=1; j<=w; j++) {
			printf("%d ", p[i][j]);
		}
		printf("\n");
	}
}

 

격자판의 세로(h), 가로(w)를 입력받고 놓을 수 있는 막대의 개수(n) 또한 입력받는다.

 

첫번째 반복문 내에서는 입력받은 막대의 개수만큼 막대의 길이(l), 방향(d), 좌표(x, y)를 입력받고

 

방향이 가로일 경우 y값에 변수 count를 더한 좌표에 1을 할당한다. count의 경우 초기값은 0이며 수행 후 1씩 증가한다.

 

반대로 세로일 경우 x값에 변수 count를 더한 좌표에 1을 할당한다.