티스토리 뷰

코딩테스트/Silver 5

[S5] 1531. 투명

jhcard 2022. 6. 17. 18:11
728x90
반응형

https://www.acmicpc.net/problem/1531

 

1531번: 투명

첫째 줄에 N과 M이 주어진다. N은 0보다 크거나 같고, 50보다 작거나 같다. M은 0보다 크거나 같고, 50보다 작거나 같다. 둘째 줄부터 N개의 줄에 종이의 좌표가 주어진다. 왼쪽 아래 모서리의 x, y좌

www.acmicpc.net

매우 쉬운 문제이다. 하지만 이 문제를 통해 알게 된 사실이 있어 작성한다.

먼저 내가 작성한 코드이다.

#include <cstdio>

int main(void) {
	int turn, N;
	scanf("%d %d", &turn, &N);

	int picture[100][100]{};

	for (int i = 0; i < turn; i++) {
		int x1, y1, x2, y2;
		scanf("%d %d %d %d", &x1, &y1, &x2, &y2);

		for (int j = x1-1; j <= x2-1; j++) {
			for (int k = y1-1; k <= y2-1; k++) {
				picture[j][k]++;
			}
		}
	}

	int count = 0;
	for (int i = 0; i < 100; i++) {
		for (int j = 0; j < 100; j++) {
			if (picture[i][j] > N) count++;
		}
	}

	printf("%d", count);
}

초기에는 cin과 cout을 사용해주었다. 그렇게 하기 위해서는 #include <iostream>이 필요하다. 이 iostream라이브러리 추가가 거의 1000KB를 차지한다. 이제까지 메모리 차이가 이렇게 크게 차이나는 이유는 라이브러리에서 나오는 것이었다. 

printf와 scanf만을 사용하는 방식이 메모리를 많이 줄여준다.

 

나는 실험도 해보았다. scanf와 printf만을 사용하고, #include <iostream>만을 해주었는데 1000KB가 늘어난 것을 확인할 수 있었다.

728x90
반응형

'코딩테스트 > Silver 5' 카테고리의 다른 글

[S5] 16173. 점프왕 쩰리(Small)  (0) 2022.06.20
[S5] 11637. 인기 투표  (0) 2022.06.17
[S5] 15719. 중복된 숫자  (0) 2022.06.17
[S5] 15549. if  (0) 2022.06.16
[S5] 14468. 소가 길을 건너간 이유2  (0) 2022.06.16