BOJ_B1_10163
๐ [B1_10163] ์์ข ์ด
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
static StringTokenizer st;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
// ์ ์ฒด ๋ฐฐ์ด
int[][] arr = new int[1002][1002];
// ์์ข
์ด์ ์
int N = Integer.parseInt(br.readLine());
// ๋ง์ง๋ง ๋ฒ์ ์ฐพ์ ๋ ์๊ฐ์ ์ค์ด๊ธฐ ์ํ ๋ณ์
int max_x = 0;
int max_y = 0;
for(int i=1; i<N+1; i++){
st = new StringTokenizer(br.readLine(), " ");
int x = Integer.parseInt(st.nextToken());
int y = Integer.parseInt(st.nextToken());
int weight = Integer.parseInt(st.nextToken());
int height = Integer.parseInt(st.nextToken());
// ๋ฐฐ์ด์ ๋ฒ์ ๋งํผ ์ซ์ ๋ฃ์ด์ฃผ๊ธฐ ( ์ฒซ๋ฒ์งธ๋ฉด 1,, ๋๋ฒ์งธ๋ 2,,, )
for(int j= x; j< x+weight; j++){
for(int z = y; z<y+height; z++){
arr[j][z] = i;
}
}
max_x = Math.max(max_x, x+weight);
max_y = Math.max(max_y, y+height);
}
// ๋ฐฐ์ด ๋๋ฉด์ ํฉ ๊ตฌํ๊ธฐ
for(int i=1; i<N+1; i++){
int sum = 0;
for(int j=0;j<max_x;j++){
for(int z=0; z<max_y;z++){
if(arr[j][z] == i){
sum++;
}
}
}
sb.append(sum).append("\n");
}
System.out.println(sb);
}
}
๐ค ๋์ ์๊ฐ
๋ด๊ฐ ์๊ฐํ ์ด ๋ฌธ์ ์ ํฌ์ธํธ๋ ํฌ๊ธฐ๋ฅผ ๊ณฑ์ผ๋ก ๊ตฌํ๋๊ฒ ์๋ ์ขํ๋ฅผ ์ด์ฉํ์ฌ ํ์๋ฅผ ํด์ฃผ๋ ๊ฒ์ด๋ค.
์ ์ฒด ์ขํ๋ฅผ ๋ฐฐ์ด์ ์ ์ฅํ์ฌ ์ ์ผ ๋จผ์ ๋์จ ์๋ฅผ 1๋ก ๋ค ์น ํ๊ณ , ๋ค์์ 2, ๋ค์์ 3 .. ์ด๋ฐ ์์ผ๋ก ์ฑ์ ๋๊ฐ๋ค.
์ฌ๊ธฐ์ ๋ฐฐ์ด ๊ฐ๋ค์ ๋ฎ์ด์์์ง๊ธฐ ๋๋ฌธ์ ์์์ ๊ฒน์น๋ ๋ถ๋ถ์ ๊ฐ์ฅ ์ต์ ๊ฐ์ผ๋ก ๋ณํ๋ค.
๊ทธ๋ฌ๊ณ ๋์ค์ ์ถ๋ ฅํ ๋ ๊ฐ๋ก 1001, ์ธ๋ก 1001์ ๋ค ๋๋ ๊ฒ์ ๋นํจ์จ์ ์ด๊ธฐ ๋๋ฌธ์ ๊ทธ์ ์ ๊ฐ๋ค์ ๋ฃ์ด์ฃผ๋ฉด์ ์ต๋์ x๊ฐ,y๊ฐ์ ์ ์ฅํด๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ง์ง๋ง์ ๋ฐ๋ณต๋ฌธ์ผ๋ก ๋๋ฉด์ ์ขํ๊ฐ๋ค์ ํตํด ํฌ๊ธฐ๋ค์ ์ถ๋ ฅํด์ฃผ๋ฉด ๋๋ค.
์์ข
์ด ๊ฐ์ ์ขํ๋ฅผ ์ด์ฉํ ๋ฌธ์ ๋ค์ด ๋ง์๋ฐ ์ด๋ฐ ๋ฌธ์ ๋ค์ ๊ณฑ์ ํ์ฌ ๊ตฌํ๊ธฐ ๋ณด๋จ ์ข์ ์์ด๋์ด๋ฅผ ํตํด ๊ตฌํ๋ ๊ฒ์ด ๋ง๋ ๋ฐฉ๋ฒ์ธ ๊ฒ ๊ฐ๋ค.