1 λΆ„ μ†Œμš”

πŸ“ [B1_2563] 색쒅이

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 NumberFormatException, IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder();

		// 합계
		int res = 0;

		// 색쒅이 수
		int N = Integer.parseInt(br.readLine());

		// x, y μ’Œν‘―κ°’
		int[][] arr = new int[101][101];

		// 색쒅이 μž…λ ₯λ°›κΈ°
		for (int i = 0; i < N; i++) {
			st = new StringTokenizer(br.readLine(), " ");

			int pap_x = Integer.parseInt(st.nextToken());
			int pap_y = Integer.parseInt(st.nextToken());

			for (int j = pap_x; j < pap_x + 10; j++) {
				for (int z = pap_y; z < pap_y + 10; z++) {

					// λ§Œμ•½ 이미 거쳐 κ°”λŠ” 경우
					if (arr[z][j] == 1) {
						continue;
					} 
					// 처음 λ“€λ¦¬λŠ” 경우
					else {
						arr[z][j] = 1;
						res++;
					}
				}
			}
		}

		sb.append(res);
		System.out.println(sb);
	}
}

πŸ€” λ‚˜μ˜ 생각

보고 λ‚˜μ„œ μ²˜μŒμ—λŠ” 경우의 μˆ˜κ°€ λ„ˆλ¬΄ λ§Žμ€ 생각을 ν•˜λ©° μ–΄λ–»κ²Œ ν•˜μ§€ μƒκ°ν–ˆμ—ˆλŠ”λ° ꡉμž₯히 ꡉμž₯히 κ°„λ‹¨ν•œ κ²ƒμ΄μ˜€λ‹€..
이런 문제의 ꡬ쑰λ₯Ό μ•Œμ•˜λ‹€λ©΄ 거짓말 μ•ˆν•˜κ³  5뢄도 μ•ˆ 걸렸을 λ“―.. γ…Žγ…Ž
크기도 100*100으둜 μ •ν•΄μ Έμžˆμ–΄ λ‹€ λŒλ©΄μ„œ μ‚¬κ°ν˜•μ΄ λ“€μ–΄κ°ˆ 자리면 1을 λ„£κ³  겹치면 톡과 μ΄λ ‡κ²Œ 계속 배열을 돌면 λœλ‹€.
단지 ν•˜λ‚˜ ! 이제 μ„ λ§Œ κ²ΉμΉ  κ²½μš°λ„ μΉ΄μš΄νŒ…ν•˜λŠ” 것을 μ£Όμ˜ν•΄μ•Ό ν•œλ‹€.
κ·Έλž˜μ„œ 처음 이쀑 forλ¬Έμ—μ„œ 10 ν”ŒλŸ¬μŠ€ν•œ μ’Œν‘œκΉŒμ§€ λ„£λŠ”κ²Œ μ•„λ‹ˆλΌ κ·Έμ „κΉŒμ§€λ§Œ 체크해주어야 ν•œλ‹€.