https://www.acmicpc.net/problem/2669
2669번: 직사각형 네개의 합집합의 면적 구하기
입력은 네 줄이며, 각 줄은 직사각형의 위치를 나타내는 네 개의 정수로 주어진다. 첫 번째와 두 번째의 정수는 사각형의 왼쪽 아래 꼭짓점의 x좌표, y좌표이고 세 번째와 네 번째의 정수는 사각
www.acmicpc.net
- 문제
- 제출한 코드
#include <stdio.h>
int arr[100][100] = { 0 };
int main()
{
int a; int b; int c; int d;
int sum = 0;
for (int i = 1; i <= 4; i++) {
scanf("%d %d %d %d", &a, &b, &c, &d);
for (int i = a; i < c; i++) {
for (int j = b; j < d; j++) {
arr[i][j] = 1;
}
}
}
for (int i = 1; i <= 100; i++) {
for (int j = 0; j <= 100; j++) {
if (arr[i][j] == 1)
sum++;
}
}
printf("%d", sum);
}
- 풀이과정
#include <stdio.h>
int arr[100][100] = { 0 }; // x,y의 범위만큼 이차원 배열 생성 및 초기화-> Uniform Initialization
int main()
{
int a; int b; int c; int d;
int sum = 0; // 초기화 필수
// 입력
for (int i = 1; i <= 4; i++) {
scanf("%d %d %d %d", &a, &b, &c, &d); // & 붙여줘야 해당 값 참조 가능
for (int i = a; i < c; i++) { // x 좌표
for (int j = b; j < d; j++) { // y 좌표
arr[i][j] = 1; // 해당 좌표의 배열에 1 대입
}
}
}
// 면적 합산
for (int i = 1; i <= 100; i++) {
for (int j = 0; j <= 100; j++) {
if (arr[i][j] == 1) // 배열의 값에 1이 있을 경우
sum++; // sum += 1
}
}
printf("%d", sum);
}
'Algorithm' 카테고리의 다른 글
[프로그래머스] JavaScript | 숫자 문자열과 영단어 (0) | 2022.08.15 |
---|---|
[백준 알고리즘] C++ | 0912번 괄호 더하기 (0) | 2022.07.06 |
[백준] 2231번: 분해합(브루트포스) - Python (0) | 2022.03.07 |
[백준] 2798번: 블랙잭(브루트포스) - Python (0) | 2022.03.07 |
[백준] 11399번: ATM(그리디 알고리즘) - Python (0) | 2022.03.03 |