Algorithm/๋ฌธ์ œํ’€์ด

[๋ฐฑ์ค€] 2890๋ฒˆ - ์นด์•ฝ (JS)

moaoh 2023. 7. 26. 20:46

 

2890๋ฒˆ: ์นด์•ฝ

์ฒซ์งธ ์ค„์— R๊ณผ C๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ R๊ฐœ ์ค„์—๋Š” '.', 'S', 'F', '1'~'9'๋กœ ์ด๋ฃจ์–ด์ง„ ์œ„์„ฑ ์ง€๋„๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ํ•œ ์ค„์—๋Š” ์ตœ๋Œ€ ํ•œ ๊ฐœ์˜ ์นด์•ฝ๋งŒ ์žˆ๊ณ , ์œ„์„ฑ ์‚ฌ์ง„์— ์žˆ๋Š” ์นด์•ฝ์€ ํ•ญ์ƒ 9๊ฐœ์ด๋‹ค. (10 ≤ R, C ≤ 50)

www.acmicpc.net

๋ฌธ์ œ

์ƒ๊ทผ์ด๋Š” ์นด์•ฝ ๋Œ€ํšŒ๋ฅผ ๊ฐœ์ตœํ–ˆ๋‹ค. ๋Œ€ํšŒ๋Š” ์ „์„ธ๊ณ„์— ์ƒ์ค‘๊ณ„๋˜๊ณ , ์œ„์„ฑ์ด ๊ฒฝ๊ธฐ์žฅ ์ „์ฒด๋ฅผ ์ดฌ์˜ํ•˜๊ณ  ์žˆ๋‹ค. ์ƒ๊ทผ์ด๋Š” ์œ„์„ฑ ์‚ฌ์ง„์„ ๋ฐ”ํƒ•์œผ๋กœ ์‹ค์‹œ๊ฐ„ ์ˆœ์œ„๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค๋ ค๊ณ  ํ•œ๋‹ค.

์œ„์„ฑ ์‚ฌ์ง„์€ Rํ–‰ C์—ด์ด๋‹ค. ๋ชจ๋“  ์ค„์˜ ์ฒซ ๋ฒˆ์งธ ๊ธ€์ž๋Š” 'S'์ด๊ณ  ์ถœ๋ฐœ์„ ์„ ์˜๋ฏธํ•œ๋‹ค. ๋˜, ๋งˆ์ง€๋ง‰ ๊ธ€์ž๋Š” 'F'์ด๊ณ  ์ด๊ฒƒ์€ ๊ฒฐ์Šน์„ ์„ ์˜๋ฏธํ•œ๋‹ค. ๋Œ€ํšŒ์— ์ฐธ๊ฐ€ํ•œ ํŒ€์€ ์ด 9ํŒ€์ด๊ณ , ๊ฐ ํŒ€์€ 1๋ถ€ํ„ฐ 9๊นŒ์ง€ ๋ฒˆํ˜ธ๊ฐ€ ๋งค๊ฒจ์ ธ ์žˆ๋‹ค. ์นด์•ฝ์€ ํ•ญ์ƒ ์—ด์— ๋Œ€ํ•ด ์—ฐ์†ํ•˜๋Š” ์„ธ ์นธ์„ ์ฐจ์ง€ํ•˜๋ฉฐ, ์นด์•ฝ ๋ฒˆํ˜ธ๋กœ ํ‘œ์‹œํ•œ๋‹ค. ๋งˆ์ง€๋ง‰์œผ๋กœ ๋ฌผ์€ '.'๋กœ ๋‚˜ํƒ€๋‚˜ ์žˆ๋‹ค.

ํŒ€์˜ ์ˆœ์œ„๋Š” ๊ฒฐ์Šน์„ ์œผ๋กœ๋ถ€ํ„ฐ ๋–จ์–ด์ง„ ๊ฑฐ๋ฆฌ๋กœ ์ธก์ •ํ•œ๋‹ค. ๊ฐ€๊นŒ์šธ์ˆ˜๋ก ์ˆœ์œ„๊ฐ€ ๋†’๋‹ค. ๋งŒ์•ฝ, ๋‘ ํŒ€์ด ๊ฒฐ์Šน์„ ๊ณผ ๋–จ์–ด์ง„ ๊ฑฐ๋ฆฌ๊ฐ€ ๊ฐ™๋‹ค๋ฉด, ๊ฐ™์€ ๋“ฑ์ˆ˜์ด๋‹ค.


์ž…๋ ฅ

์ฒซ์งธ ์ค„์— R๊ณผ C๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ R๊ฐœ ์ค„์—๋Š” '.', 'S', 'F', '1'~'9'๋กœ ์ด๋ฃจ์–ด์ง„ ์œ„์„ฑ ์ง€๋„๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ํ•œ ์ค„์—๋Š” ์ตœ๋Œ€ ํ•œ ๊ฐœ์˜ ์นด์•ฝ๋งŒ ์žˆ๊ณ , ์œ„์„ฑ ์‚ฌ์ง„์— ์žˆ๋Š” ์นด์•ฝ์€ ํ•ญ์ƒ 9๊ฐœ์ด๋‹ค. (10 ≤ R, C ≤ 50)


์ถœ๋ ฅ

์ถœ๋ ฅ์€ ์ด 9์ค„์„ ํ•ด์•ผ ํ•œ๋‹ค. i๋ฒˆ์งธ ์ค„์—๋Š” i๋ฒˆ ํŒ€์˜ ๋“ฑ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. (i=1~9)



ํ’€์ด๊ณผ์ •

์—ญ์ˆœ์œผ๋กœ ๋ฐฐ์—ด์„ ๋Œ๋ฉฐ ์กฐ๊ฑด์‹์ด ํƒ€๋‹นํ•œ๊ฒฝ์šฐ์— ์ˆœ์œ„๋ฅผ ์ˆœ์œ„๋ฐฐ์—ด์— ์ž…๋ ฅ

code

function kayak() {
	const [n, ...arr] = require('fs')
	.readFileSync('/dev/stdin')
	.toString()
	.trim()
	.split('\\n');

	let count = 0;
	let number = [];
	let flag = false;
	// r ์„ธ๋กœ, c ๊ฐ€๋กœ
	const [c, r] = n.split(' ').map(Number);
	for (let i = r - 1; i >= 0; i--) {
		flag = false;
		for (let j = 0; j < c; j++) {
			if ('1' <= arr[j][i] && arr[j][i] <= '9')
				if (arr[j][i + 1] === '.' || arr[j][i + 1] === 'F') {
					if (!flag) {
						count++;
						flag = true;
					}
					number[arr[j][i]] = count;
				}
		}
	}
	// console.log(number);
	for (let i = 1; i < 10; i++) {
		console.log(number[i]);
	}
};

kayak();


ํ›„๊ธฐ

๋ฌธ์ œ๋ฅผ ๋˜‘๋ฐ”๋กœ ์ฝ์–ด์•ผ๊ฒ ๋‹ค ๋ฌธ์ œ๋ฅผ ์ž˜๋ชป์ฝ์–ด์„œ ๋‚œ๋…์ฆ์ด ๋ฐœ์ƒ.