[λ°±μ€€][JS] 2563번: 색쒅이

πŸ–±οΈ2563번: 색쒅이

 

 

κ°€λ‘œ, μ„Έλ‘œμ˜ 크기가 각각 100인 μ •μ‚¬κ°ν˜• λͺ¨μ–‘μ˜ 흰색 도화지가 μžˆλ‹€. μ΄ 도화지 μœ„μ—

κ°€λ‘œ, μ„Έλ‘œμ˜ 크기가 각각 10인 μ •μ‚¬κ°ν˜• λͺ¨μ–‘μ˜ 검은색 색쒅이λ₯Ό μƒ‰μ’…μ΄μ˜ λ³€κ³Ό λ„ν™”μ§€μ˜ 변이 ν‰ν–‰ν•˜λ„λ‘ 뢙인닀.

μ΄λŸ¬ν•œ λ°©μ‹μœΌλ‘œ 색쒅이λ₯Ό ν•œ μž₯ λ˜λŠ” μ—¬λŸ¬ μž₯ 뢙인 ν›„ 색쒅이가 뢙은 검은 μ˜μ—­μ˜ 넓이λ₯Ό κ΅¬ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€.

합집합을 κ΅¬ν•˜λŠ” λ¬Έμ œμ΄λ‹€.

μž…λ ₯

첫째 쀄에 μƒ‰μ’…μ΄μ˜ μˆ˜κ°€ 주어진닀.

이어 λ‘˜μ§Έ 쀄뢀터 ν•œ 쀄에 ν•˜λ‚˜μ”© 색쒅이λ₯Ό 뢙인 μœ„μΉ˜κ°€ 주어진닀.

색쒅이λ₯Ό 뢙인 μœ„μΉ˜λŠ” 두 개의 μžμ—°μˆ˜λ‘œ μ£Όμ–΄μ§€λŠ”λ° 첫 번째 μžμ—°μˆ˜λŠ” μƒ‰μ’…μ΄μ˜ μ™Όμͺ½ λ³€κ³Ό λ„ν™”μ§€μ˜ μ™Όμͺ½ λ³€ μ‚¬μ΄μ˜ 거리이고,

두 번째 μžμ—°μˆ˜λŠ” μƒ‰μ’…μ΄μ˜ μ•„λž˜μͺ½ λ³€κ³Ό λ„ν™”μ§€μ˜ μ•„λž˜μͺ½ λ³€ μ‚¬μ΄μ˜ 거리이닀.

μƒ‰μ’…μ΄μ˜ μˆ˜λŠ” 100 μ΄ν•˜μ΄λ©°, 색쒅이가 도화지 λ°–μœΌλ‘œ λ‚˜κ°€λŠ” κ²½μš°λŠ” μ—†λ‹€.

3 	//μƒ‰μ’…μ΄μ˜ 수
3 7 	// A 색쒅이λ₯Ό 뢙인 μœ„μΉ˜(x, y)
15 7 	// B 색쒅이λ₯Ό 뢙인 μœ„μΉ˜(x, y)
5 2 	// C 색쒅이λ₯Ό 뢙인 μœ„μΉ˜(x, y)

 

좜λ ₯

첫째 쀄에 색쒅이가 뢙은 검은 μ˜μ—­μ˜ 넓이λ₯Ό 좜λ ₯ν•œλ‹€.

260 //A, B, C μƒ‰μ’…μ΄μ˜ 합집합

 

μ˜μ‚¬μ½”λ“œ

색쒅이 수, 색쒅이λ₯Ό 뢙인 μœ„μΉ˜ μž…λ ₯

100x100 흰색 λͺ¨λˆˆμ’…이 λ³€μˆ˜ μ΄ˆκΈ°ν™”
색쒅이 μœ„μΉ˜λ“€μ„ λ°°μ—΄λ‘œ μ €μž₯

for(색쒅이 μœ„μΉ˜ of 색쒅이 μœ„μΉ˜ λͺ©λ‘) {
	색쒅이λ₯Ό 뢙인 μœ„μΉ˜ λ³€μˆ˜μ— μ €μž₯
 
	for(xμ’Œν‘œ ~ Xμ’Œν‘œ+10) {
 		for(yμ’Œν‘œ ~ yμ’Œν‘œ+10){
    			if(이미 μƒ‰μΉ λœ 칸일 경우) continue;
        
        		μƒ‰μΉ λ˜μ§€ μ•Šμ€ μΉΈ 색칠
        		칸을 색칠할 λ•Œλ§ˆλ‹€ 횟수 증가
    		}
 	}
}

횟수 좜λ ₯

 

μ†ŒμŠ€ μ½”λ“œ

const filePath = `linux` === process.platform ? `dev/stdin` : 'input.txt';
const lines = require('fs').readFileSync(filePath).toString().trim().split(`\n`);

let drawingPaper = Array.from(Array(100), () => Array(100).fill(0));
const confetti = lines.slice(1).map(line => line.split(` `).map(Number));
let size = 0;

if (Number(lines[0]) !== confetti.length) return;

confetti.forEach(line => {
    const [x, y] = line;

    for(let i = x; i < x+10; i++) {
        for(let j = y; j < y+10; j++) {
            if(1 === drawingPaper[i][j]) continue;
            drawingPaper[i][j] = 1;
            size++;
        }
    }
})

console.log(size)

 

'Algorithm > Coding Test' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[λ°±μ€€][JS] 9012번: κ΄„ν˜Έ  (0) 2023.05.12
[λ°±μ€€] Node.js μž…μΆœλ ₯  (0) 2023.05.03