๋ฌธ์ž์—ด ์Šคํƒ

8/22/2025

์ดˆ์•ˆ

function solution(s) {
	while (s.length > 0) {
		for (let i = 0; i < s.length; i++) {
			const ch1 = s[i];
			const ch2 = s[i + 1];
			// console.log(ch1, ch2);
			if (ch1 === ch2) {
				s = s.substring(0, i) + s.substring(i + 2);
				// console.log("s : ", s);
				break;
			}
			if (i === s.length - 1) {
				return 0;
			}
		}
	}
	return 1;
}

// console.log(solution("baabaa"));
console.log(solution("cdcd"));

s๋ฌธ์ž์—ด ์ „์ฒด๋ฅผ ์ˆœํšŒํ•˜๋ฉด์„œ
๋ฐ˜๋ณต์ ์œผ๋กœ ์•ž์˜ ๋‘ ๊ธ€์ž๋ฅผ ๋น„๊ตํ•˜๊ณ 
์ „๋ถ€ ๋‹ค ์ œ๊ฑฐํ•ด์„œ while ๋ฌธ์„ ๋น ์ ธ๋‚˜์˜ค๋ฉด 1์„ ๋ฐ˜ํ™˜ํ•˜๊ณ ,
๋ฐ˜ํ™˜ํ•˜์ง€ ๋ชปํ•ด์„œ i๊ฐ€ s.length-1 ์ฆ‰ ๋ฌธ์ž์—ด ๋๊นŒ์ง€ ๋„๋‹ฌํ•˜๋ฉด 0์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ํ’€์—ˆ๋‹ค.

์ •ํ™•๋„๋Š” 18/18์ธ๋ฐ ํšจ์œจ์„ฑ์ด 1/8๋กœ ์‹ฌํžˆ ๋‚ฎ์•˜๋‹ค.

์›์ธ ํŒŒ์•…

while๊ณผ for ๋กœ ๋ฐ˜๋ณต ์ค‘์ฒฉ์ด ์žˆ์–ด์„œ O(n2)O(n^2)๋ณต์žก๋„๋ฅผ ๊ฐ€์ง„๋‹ค.
์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹œ๊ฐ„๋ณต์žก๋„ ์—์„œ O(n2)O(n^2)๋ณด๋‹ค ๋‚ฎ์€ ๋ณต์žก๋„๋“ค์€
O(nlogn),O(n),O(logn)O(nlogn), O(n), O(logn)๋“ค์ด ์žˆ๋‹ค. (๋‚ด๋ฆผ์ฐจ์ˆœ)

์ € ๋นจ๊ฐ„์ƒ‰ ์˜์—ญ์ด horrible ํ•˜๋‹ค๋Š”๊ฑธ ๋ณด๋‹ˆ
ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•  ๋•Œ ์ตœ๋Œ€ํ•œ ๋ฐ˜๋ณต๋ฌธ ์ค‘์ฒฉ์€ ํ”ผํ•ด์•ผ๋˜๋Š”๊ฒƒ ๊ฐ™๋‹ค.

๊ทธ๋Ÿผ ์œ„์˜ ๋ฌธ์ œ๋„ ๋ฐ˜๋ณต๋ฌธ ์ค‘์ฒฉ ์—†์ด ํ’€์–ด์•ผ๋œ๋‹ค๋Š”๊ฒŒ ๋ฌธ์ œ์˜ ์ถœ์ œ์˜๋„์ผ ๊ฒƒ์ธ๋ฐ, ์–ด๋–ป๊ฒŒ ํ’€์–ด์•ผ๋ ๊นŒ?
์ผ๋‹จ ์•ˆ์˜ for๋ฌธ์ด ์ด ํ•จ์ˆ˜์˜ ํ•ต์‹ฌ ๊ธฐ๋Šฅ์„ ๋‹ด๋‹นํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ–์˜ while๋ฌธ์˜ ์—ญํ• ์„ ๋Œ€์ฒดํ•  ์ฝ”๋“œ๋ฅผ for ๋ฌธ ์•ˆ์— ์ž‘์„ฑํ•ด์•ผ๋˜๊ฒ ์ง€?

...(3๋ถ„๊ฐ„ ๊ณ ๋ฏผํ›„ ํด๋กœ๋“œ์—๊ฒŒ ๋ฌผ์–ด๋ดค๋‹ค.)

์Šคํƒ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค๊ณ  ํ•œ๋‹ค. ์ด๊ฑธ ์ƒ๊ฐ ๋ชปํ–ˆ๋‹ค๋‹ˆ.
KOCW ์ž๋ฃŒ๊ตฌ์กฐ ์ˆ˜์—…์—์„œ๋„ ๋“ค์—ˆ๋˜ ๋‚ด์šฉ์ธ๋ฐ, ์Šคํƒ์€ ๋งˆ์ง€๋ง‰๊ฒƒ, ์ตœ์‹ ๊ฒƒ๊ณผ ๋น„๊ตํ•  ๋•Œ ์‚ฌ์šฉ๋œ๋‹ค.

์™œ ์Šคํƒ์„ ์ƒ๊ฐํ•ด๋‚ด์ง€ ๋ชปํ–ˆ์„๊นŒ?

์ฝ”๋”ฉํ…Œ์ŠคํŠธ์—์„œ ์Šคํƒ์„ ์‚ฌ์šฉํ•ด ํ‘ผ ๋ฌธ์ œ๊ฐ€ ๋ช‡ ๊ฐœ ์žˆ๊ธฐ๋„ํ•˜๊ณ , ์Šคํƒ์„ ๋ชจ๋ฅด๋˜๊ฒƒ๋„ ์•„๋‹Œ๋ฐ ์™œ ์ด ๋ฌธ์ œ์—์„œ ๋– ์˜ฌ๋ ค๋‚ด์ง€ ๋ชปํ–ˆ์„๊นŒ?
์‹ฌ์ง€์–ด ์˜ˆ์ „์— ํ’€์—ˆ๋˜ ๊ด„ํ˜ธ ์ง ๋งž์ถ”๊ธฐ ๋ฌธ์ œ๋ž‘ ์‚ฌ์‹ค์ƒ ๊ตฌ์กฐ๋Š” ๋˜‘๊ฐ™์€๋ฐ ๋ง์ด๋‹ค....

์ฝ”๋”ฉํ…Œ์ŠคํŠธ์—์„œ ์–ด๋–ค ์•Œ๊ณ ๋ฆฌ์ฆ˜, ์ž๋ฃŒ์œ ํ˜•์„ ์‚ฌ์šฉํ•ด์•ผํ•˜๋Š”์ง€ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๋Š”๊ฒŒ ์ค‘์š”ํ•˜๋‹ค๊ณ  ์ „์— ๋“ค์—ˆ๋˜ ํŠน๊ฐ•(์„œ์šธ๊ณ ์šฉ์„ผํ„ฐ 6์›” 9์ผ ํŠน๊ฐ•)์ด ์ƒ๊ฐ๋‚ฌ๋‹ค.

๋ฌธ์ œ๋ฅผ ์ถ”์ƒํ™” ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.
์—ฌ๊ธฐ์„œ ๋ฐ”๋กœ ์ˆ˜ํ•™์‹ค๋ ฅ์ด ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ๊ฐœ์ž…ํ•˜๋Š”๊ฑฐ ์•„๋‹๊นŒ.
"baabaa" "({}){}" ๋ชจ๋‘ ์ธ์ ‘ํ•œ ์Œ์„ ์ œ๊ฑฐํ•˜๋Š”๊ฒŒ ๋ณธ์งˆ์ด๋‹ˆ๊นŒ

์Šคํƒ๋ฌธ์ œ์˜ ํ•ต์‹ฌ ํ‚ค์›Œ๋“œ๋“ค๋กœ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒƒ๋“ค์ด ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค.
์ธ์ ‘ํ•œ, ์—ฐ์†๋œ, ์Œ, ์ตœ๊ทผ, ๋˜๋Œ๋ฆฌ๊ธฐ, ...

๋ฌธ์ œ๊ฐ€ ์š”๊ตฌํ•˜๋Š” ๊ณผ์ œ๋ฅผ ๋ณธ์งˆ๋งŒ ์ถ”๋ ค์„œ ์ถ”์ƒํ™” ํ•œ ๋‹ค์Œ์— ํ•ด๋‹นํ•˜๋Š” ํ‚ค์›Œ๋“œ๋ฅผ ์ฐพ๋Š” ์—ฐ์Šต์ด ํ•„์š”ํ•  ๊ฒƒ ๊ฐ™๋‹ค.

๋‹ต์•ˆ

function solution(s) {
	const stack = [];

	for (let i = 0; i < s.length; i++) {
		const ch = s[i];
		// console.log(ch);
		if (stack.length > 0 && stack[stack.length - 1] === ch) {
			stack.pop();
		} else {
			stack.push(ch);
		}
	}

	return stack.length > 0 ? 0 : 1;
}

์ด๋ ‡๊ฒŒ ์Šคํƒ์„ ์‚ฌ์šฉํ•ด ํ’€์—ˆ๊ณ , ํ†ต๊ณผํ–ˆ๋‹ค.