https://www.acmicpc.net/problem/2563
2563번: 색종이
첫째 줄에 색종이의 수가 주어진다. 이어 둘째 줄부터 한 줄에 하나씩 색종이를 붙인 위치가 주어진다. 색종이를 붙인 위치는 두 개의 자연수로 주어지는데 첫 번째 자연수는 색종이의 왼쪽 변
www.acmicpc.net
맞은 코드
다른 사람 풀이 보고 풀었다 어려워따
for문 사용을 줄여야겠다
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int a[100][100] = {0,}; // 색종이 붙여지지 않은 부분 0으로 초기화
int i, k, q; // 반복
int n; // 색종이 개수
int x, y; // 색종이 왼쪽 아래 점 좌표
int cnt = 0; // 색종이 넓이 (1이면 색종이 붙여져있음)
scanf("%d", &n);
for(i=0; i<n; i++){
scanf("%d %d", &x, &y);
for(k=x; k<x+10; k++){
for(q=y; q<y+10; q++){
if(a[k][q]==1) continue;
a[k][q] = 1;
cnt++;
}
}
}
printf("%d", cnt);
return 0;
}
시간초과 코드
#include <stdio.h>
int main()
{
int a[100][100] = {0,}; // 색종이 붙여지지 않은 부분 0으로 초기화
int i, k, q; // 반복
int n; // 색종이 개수
int x, y; // 색종이 왼쪽 아래 점 좌표
int cnt = 0; // 색종이 넓이 (1이면 색종이 붙여져있음)
scanf("%d", &n);
for(i=0; i<n; i++){
scanf("%d %d", &x, &y);
for(k=0; k<10; k++){
for(q=0; q<10; q++){
a[x+k][y+q] = 1;
}
}
}
for(i=0; i<100; i++){
for(k=0; i<100; k++){
if(a[i][k] == 1) cnt++;
}
}
printf("%d", cnt);
return 0;
}
'잡동사니 > [2022] 회로이론' 카테고리의 다른 글
[백준/C] 18258번 큐 2 (0) | 2022.12.11 |
---|---|
[백준/C] 1152번 단어의 개수 (0) | 2022.12.11 |
[백준/C] 11653번 소인수분해 (0) | 2022.12.11 |
[백준/C] 2751번 수 정렬하기 2 (0) | 2022.12.11 |
[5] 회사에서 하는 랜 구성 (1) | 2022.12.11 |