인프런 커뮤니티 질문&답변

Yellow C.a.r.d님의 프로필 이미지
Yellow C.a.r.d

작성한 질문수

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

2-D

2 - D 입력질문드립니다.

작성

·

283

0

안녕하세요.

2583번 문제에서 예제가 왜

5 7 3
0 2 4 4
1 1 2 5
4 0 6 2

이렇게 받는지 잘 모르겠습니다ㅠㅠ

그리고

for(int i = 0; i < k; i++) {	
	cin >> x1 >> y1 >> x2 >> y2;
	for(int x = x1; x < x2; x++) {
		for(int y = y1; y < y2; y++) {
			a[y][x] = 1;
		}
	}
}

cin 으로 x1 y1 x2 y2 받는 줄 아래에

왜 x가 x2랑 엮이고 y가 y2랑 엮이는지 잘 모르겠습니다ㅠㅠ

 

문제 풀기전에 예제입력&예제출력이 왜 이렇게 나오나 먼저 좀 생각을 해보고 코드 작성하는데 한참을 들여다 봤는데 잘 이해가 안되니 도저히 감이 안와서 이렇게 여쭙니다.

 

 

답변 1

1

큰돌님의 프로필 이미지
큰돌
지식공유자

안녕하세요 Yello님 ㅎㅎ

첫째 줄에 M과 N, 그리고 K가 빈칸을 사이에 두고 차례로 주어진다. M, N, K는 모두 100 이하의 자연수이다. 둘째 줄부터 K개의 줄에는 한 줄에 하나씩 직사각형의 왼쪽 아래 꼭짓점의 x, y좌표값과 오른쪽 위 꼭짓점의 x, y좌표값이 빈칸을 사이에 두고 차례로 주어진다. 모눈종이의 왼쪽 아래 꼭짓점의 좌표는 (0,0)이고, 오른쪽 위 꼭짓점의 좌표는(N,M)이다. 입력되는 K개의 직사각형들이 모눈종이 전체를 채우는 경우는 없다.

 

문제지문을 보면.

자 K개의 줄에 따라 x1, y1, x2, y2가 나온다고 되어있습니다.

그래서

0 2 4 4
1 1 2 5
4 0 6 2

이러한 3줄이 나오게 되는 것이죠.

또한 여기서

x1, y1, x2, y2를 해석해보면

우리가 사각형을 좌표로 나타낸다고 해볼게요.

음..

{0, 0}, {2, 0}, {0, 2}, {2, 2} 의 꼭지점을 가진 사각형을 예로 들어보죠. (x, y)

자 지금 제가 4개의 꼭지점을 들었죠? 근데 이거를 이 문제에서 주어지듯이

왼쪽 아래 꼭짓점의 x, y좌표값과 오른쪽 위 꼭짓점

으로만 나타낼 수도 있어요.

즉, {0, 0}, {2, 2} 으로 표현할 수 있습니다.

그렇게 한다음

x : 0 ~ 2

y : 0 ~ 2

로 좌표를 만들어 해당 정점을 채워가며 해당 사각형을 만들 수 있는것이죠.

감사합니다.

 

아아..! 이해했습니다ㅠㅠ 아 감사합니다.

Yellow C.a.r.d님의 프로필 이미지
Yellow C.a.r.d

작성한 질문수

질문하기