๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๊ฐœ์ธ๊ณต๋ถ€/Algorithm

[๋ฐฑ์ค€][Node.js] 1032๋ฒˆ : ๋ช…๋ น ํ”„๋กฌํ”„ํŠธ

by ๐Ÿ‡๋ฐ•๋ด‰๋ด‰๐Ÿ‡ 2021. 6. 2.

 

 

 

Algorithm

-  ๋ช…๋ น ํ”„๋กฌํ”„ํŠธ -

 


 

๋ฌธ์ œ

์‹œ์ž‘ -> ์‹คํ–‰ -> cmd๋ฅผ ์ณ๋ณด์ž. ๊ฒ€์ • ํ™”๋ฉด์ด ๋ˆˆ์— ๋ณด์ธ๋‹ค.

์—ฌ๊ธฐ์„œ dir์ด๋ผ๊ณ  ์น˜๋ฉด ๊ทธ ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ๋Š” ์„œ๋ธŒ๋””๋ ‰ํ† ๋ฆฌ์™€ ํŒŒ์ผ์ด ๋ชจ๋‘ ๋‚˜์˜จ๋‹ค. ์ด๋•Œ ์›ํ•˜๋Š” ํŒŒ์ผ์„ ์ฐพ์œผ๋ ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•˜๋ฉด ๋œ๋‹ค.

 

dir *.exe๋ผ๊ณ  ์น˜๋ฉด ํ™•์žฅ์ž๊ฐ€ exe์ธ ํŒŒ์ผ์ด ๋‹ค ๋‚˜์˜จ๋‹ค.

"dir ํŒจํ„ด"๊ณผ ๊ฐ™์ด ์น˜๋ฉด ๊ทธ ํŒจํ„ด์— ๋งž๋Š” ํŒŒ์ผ๋งŒ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๋กœ ๋‚˜์˜จ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, dir a?b.exe๋ผ๊ณ  ๊ฒ€์ƒ‰ํ•˜๋ฉด ํŒŒ์ผ๋ช…์˜ ์ฒซ ๋ฒˆ์งธ ๊ธ€์ž๊ฐ€ a์ด๊ณ , ์„ธ ๋ฒˆ์งธ ๊ธ€์ž๊ฐ€ b์ด๊ณ , ํ™•์žฅ์ž๊ฐ€ exe์ธ ๊ฒƒ์ด ๋ชจ๋‘ ๋‚˜์˜จ๋‹ค.

์ด๋•Œ ๋‘ ๋ฒˆ์งธ ๋ฌธ์ž๋Š” ์•„๋ฌด๊ฑฐ๋‚˜ ๋‚˜์™€๋„ ๋œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, acb.exe, aab.exe, apb.exe๊ฐ€ ๋‚˜์˜จ๋‹ค.

 

์ด ๋ฌธ์ œ๋Š” ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๊ฐ€ ๋จผ์ € ์ฃผ์–ด์กŒ์„ ๋•Œ, ํŒจํ„ด์œผ๋กœ ๋ญ˜ ์ณ์•ผ ๊ทธ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ค๋Š”์ง€๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค.

ํŒจํ„ด์—๋Š” ์•ŒํŒŒ๋ฒณ๊ณผ "." ๊ทธ๋ฆฌ๊ณ  "?"๋งŒ ๋„ฃ์„ ์ˆ˜ ์žˆ๋‹ค.

๊ฐ€๋Šฅํ•˜๋ฉด ?์„ ์ ๊ฒŒ ์จ์•ผ ํ•œ๋‹ค.

๊ทธ ๋””๋ ‰ํ† ๋ฆฌ์—๋Š” ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ์— ๋‚˜์˜จ ํŒŒ์ผ๋งŒ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ณ , ํŒŒ์ผ ์ด๋ฆ„์˜ ๊ธธ์ด๋Š” ๋ชจ๋‘ ๊ฐ™๋‹ค.

 

์ž…์ถœ๋ ฅ ์˜ˆ์‹œ

 

๋ฌธ์ œ ํ’€๊ธฐ

let fs = require("fs");
let input = fs.readFileSync("/dev/stdin")
	.toString()
	.trim()
	.split("\n");
input.shift();
let result = "";

for (let i = 0; i < input[0].length; i++) {
	let alpha = input[0][i];
	let torf = true;
	for (let j = 0; j < input.length; j++) {
		if (alpha !== input[j][i]) {
			torf = false;
			break;
		}
	}
	if (torf) result += alpha;
	else result += "?";
}

console.log(result);

 

 

 

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€