๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋ก๐Ÿ“š Language & CS knowledge/Algorithm (๊ธฐ์ดˆ๋ฌธ์ œํ’€์ด) (74)

Daehyunii's Dev-blog

๊ต์œก๊ณผ์ • ์„ค๊ณ„(์ž๋ฃŒ๊ตฌ์กฐ-ํ)

๋ฌธ์ œ(์ถœ์ฒ˜ : ์ธํ”„๋Ÿฐ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œํ’€์ด ๊ฐ•์˜, ์ •๋ณด์˜ฌ๋ฆผํ”ผ์•„๋“œ) ํ˜„์ˆ˜๋Š” 1๋…„ ๊ณผ์ •์˜ ์ˆ˜์—…๊ณ„ํš์„ ์งœ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ˆ˜์—…์ค‘์—๋Š” ํ•„์ˆ˜๊ณผ๋ชฉ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํ•„์ˆ˜๊ณผ๋ชฉ์€ ๋ฐ˜๋“œ์‹œ ์ด์ˆ˜ํ•ด์•ผ ํ•˜๋ฉฐ, ๊ทธ ์ˆœ์„œ๋„ ์ •ํ•ด์ ธ ์žˆ ์Šต๋‹ˆ๋‹ค. ๋งŒ์•ฝ ์ด ๊ณผ๋ชฉ์ด A, B, C, D, E, F, G๊ฐ€ ์žˆ๊ณ , ์—ฌ๊ธฐ์„œ ํ•„์ˆ˜๊ณผ๋ชฉ์ด CBA๋กœ ์ฃผ์–ด์ง€๋ฉด ํ•„์ˆ˜๊ณผ๋ชฉ์€ C, B, A๊ณผ๋ชฉ์ด๋ฉฐ ์ด ์ˆœ์„œ๋Œ€๋กœ ๊ผญ ์ˆ˜์—…๊ณ„ํš์„ ์งœ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ์ˆœ์„œ๋ž€ B๊ณผ๋ชฉ์€ C๊ณผ๋ชฉ์„ ์ด์ˆ˜ํ•œ ํ›„์— ๋“ค์–ด์•ผ ํ•˜๊ณ , A๊ณผ๋ชฉ์€ C์™€ B๋ฅผ ์ด์ˆ˜ํ•œ ํ›„์— ๋“ค ์–ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ˜„์ˆ˜๊ฐ€ C, B, D, A, G, E๋กœ ์ˆ˜์—…๊ณ„ํš์„ ์งœ๋ฉด ์ œ๋Œ€๋กœ ๋œ ์„ค๊ณ„์ด์ง€๋งŒ C, G, E, A, D, B ์ˆœ์„œ๋กœ ์งฐ๋‹ค๋ฉด ์ž˜ ๋ชป ์„ค๊ณ„๋œ ์ˆ˜์—…๊ณ„ํš์ด ๋ฉ๋‹ˆ๋‹ค. ์ˆ˜์—…๊ณ„ํš์€ ๊ทธ ์ˆœ์„œ๋Œ€๋กœ ์•ž์— ์ˆ˜์—…์ด ์ด์ˆ˜๋˜๋ฉด ๋‹ค์Œ..

๊ณต์ฃผ๊ตฌํ•˜๊ธฐ(์ž๋ฃŒ๊ตฌ์กฐ-ํ)

๋ฌธ์ œ(์ถœ์ฒ˜ : ์ธํ”„๋Ÿฐ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œํ’€์ด ๊ฐ•์˜, ์ •๋ณด์˜ฌ๋ฆผํ”ผ์•„๋“œ) ์ •๋ณด ์™•๊ตญ์˜ ์ด์›ƒ ๋‚˜๋ผ ์™ธ๋™๋”ธ ๊ณต์ฃผ๊ฐ€ ์ˆฒ์†์˜ ๊ดด๋ฌผ์—๊ฒŒ ์žกํ˜€๊ฐ”์Šต๋‹ˆ๋‹ค. ์ •๋ณด ์™•๊ตญ์—๋Š” ์™•์ž๊ฐ€ N๋ช…์ด ์žˆ๋Š”๋ฐ ์„œ๋กœ ๊ณต์ฃผ๋ฅผ ๊ตฌํ•˜๋Ÿฌ ๊ฐ€๊ฒ ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ •๋ณด์™•๊ตญ์˜ ์™•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ๊ณต์ฃผ๋ฅผ ๊ตฌํ•˜๋Ÿฌ ๊ฐˆ ์™•์ž๋ฅผ ๊ฒฐ์ •ํ•˜๊ธฐ๋กœ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์™•์€ ์™•์ž๋“ค์„ ๋‚˜์ด ์ˆœ์œผ๋กœ 1๋ฒˆ๋ถ€ํ„ฐ N๋ฒˆ๊นŒ์ง€ ์ฐจ๋ก€๋กœ ๋ฒˆํ˜ธ๋ฅผ ๋งค๊ธด๋‹ค. ๊ทธ๋ฆฌ๊ณ  1๋ฒˆ ์™•์ž๋ถ€ํ„ฐ N ๋ฒˆ ์™•์ž๊นŒ์ง€ ์ˆœ์„œ๋Œ€๋กœ ์‹œ๊ณ„ ๋ฐฉํ–ฅ์œผ๋กœ ๋Œ์•„๊ฐ€๋ฉฐ ๋™๊ทธ๋ž—๊ฒŒ ์•‰๊ฒŒ ํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  1๋ฒˆ ์™•์ž๋ถ€ํ„ฐ ์‹œ ๊ณ„๋ฐฉํ–ฅ์œผ๋กœ ๋Œ์•„๊ฐ€๋ฉฐ 1๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์—ฌ ๋ฒˆํ˜ธ๋ฅผ ์™ธ์น˜๊ฒŒ ํ•œ๋‹ค. ํ•œ ์™•์ž๊ฐ€ K(ํŠน์ •์ˆซ์ž)๋ฅผ ์™ธ์น˜๋ฉด ๊ทธ ์™•์ž๋Š” ๊ณต์ฃผ๋ฅผ ๊ตฌํ•˜๋Ÿฌ ๊ฐ€๋Š”๋ฐ์„œ ์ œ์™ธ๋˜๊ณ  ์› ๋ฐ–์œผ๋กœ ๋‚˜์˜ค๊ฒŒ ๋œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‹ค์Œ ์™•์ž๋ถ€ํ„ฐ ๋‹ค์‹œ 1๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์—ฌ ๋ฒˆํ˜ธ๋ฅผ ์™ธ์นœ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•ด..

์‡ ๋ง‰๋Œ€๊ธฐ(์ž๋ฃŒ๊ตฌ์กฐ-์Šคํƒ)

๋ฌธ์ œ(์ถœ์ฒ˜ : ์ธํ”„๋Ÿฐ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œํ’€์ด ๊ฐ•์˜, ์ •๋ณด์˜ฌ๋ฆผํ”ผ์•„๋“œ) ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์‡ ๋ง‰๋Œ€๊ธฐ๋ฅผ ๋ ˆ์ด์ €๋กœ ์ ˆ๋‹จํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ํšจ์œจ์ ์ธ ์ž‘์—…์„ ์œ„ํ•ด์„œ ์‡ ๋ง‰๋Œ€๊ธฐ๋ฅผ ์•„๋ž˜์— ์„œ ์œ„๋กœ ๊ฒน์ณ ๋†“๊ณ , ๋ ˆ์ด์ €๋ฅผ ์œ„์—์„œ ์ˆ˜์ง์œผ๋กœ ๋ฐœ์‚ฌํ•˜์—ฌ ์‡ ๋ง‰๋Œ€๊ธฐ๋“ค์„ ์ž๋ฅธ๋‹ค. ์‡ ๋ง‰๋Œ€๊ธฐ์™€ ๋ ˆ ์ด์ €์˜ ๋ฐฐ์น˜๋Š” ๋‹ค์Œ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•œ๋‹ค. • ์‡ ๋ง‰๋Œ€๊ธฐ๋Š” ์ž์‹ ๋ณด๋‹ค ๊ธด ์‡ ๋ง‰๋Œ€๊ธฐ ์œ„์—๋งŒ ๋†“์ผ ์ˆ˜ ์žˆ๋‹ค. - ์‡ ๋ง‰๋Œ€๊ธฐ๋ฅผ ๋‹ค๋ฅธ ์‡ ๋ง‰๋Œ€๊ธฐ ์œ„์— ๋†“๋Š” ๊ฒฝ์šฐ ์™„์ „ํžˆ ํฌํ•จ๋˜๋„๋ก ๋†“๋˜, ๋์ ์€ ๊ฒน์น˜์ง€ ์•Š๋„๋ก ๋†“๋Š”๋‹ค. • ๊ฐ ์‡ ๋ง‰๋Œ€๊ธฐ๋ฅผ ์ž๋ฅด๋Š” ๋ ˆ์ด์ €๋Š” ์ ์–ด๋„ ํ•˜๋‚˜ ์กด์žฌํ•œ๋‹ค. • ๋ ˆ์ด์ €๋Š” ์–ด๋–ค ์‡ ๋ง‰๋Œ€๊ธฐ์˜ ์–‘ ๋์ ๊ณผ๋„ ๊ฒน์น˜์ง€ ์•Š๋Š”๋‹ค. ์•„๋ž˜ ๊ทธ๋ฆผ์€ ์œ„ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ์˜ˆ๋ฅผ ๋ณด์—ฌ์ค€๋‹ค. ์ˆ˜ํ‰์œผ๋กœ ๊ทธ๋ ค์ง„ ๊ตต์€ ์‹ค์„ ์€ ์‡ ๋ง‰๋Œ€๊ธฐ์ด๊ณ , ์ ์€ ๋ ˆ์ด์ €์˜ ์œ„์น˜, ์ˆ˜์ง์œผ๋กœ ๊ทธ๋ ค์ง„ ์ ์„  ํ™”์‚ดํ‘œ๋Š” ๋ ˆ..

ํ›„์œ„์‹ ์—ฐ์‚ฐ(์ž๋ฃŒ๊ตฌ์กฐ-์Šคํƒ)

๋ฌธ์ œ(์ถœ์ฒ˜ : ์ธํ”„๋Ÿฐ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œํ’€์ด ๊ฐ•์˜, ์ •๋ณด์˜ฌ๋ฆผํ”ผ์•„๋“œ) ํ›„์œ„์—ฐ์‚ฐ์‹์ด ์ฃผ์–ด์ง€๋ฉด ์—ฐ์‚ฐํ•œ ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์„ธ์š”. ๋งŒ์•ฝ 3*(5+2)-9 ์„ ํ›„์œ„์—ฐ์‚ฐ์‹์œผ๋กœ ํ‘œํ˜„ํ•˜๋ฉด 352+*9- ๋กœ ํ‘œํ˜„๋˜๋ฉฐ ๊ทธ ๊ฒฐ๊ณผ๋Š” 12์ž…๋‹ˆ๋‹ค. โ–ฃ ์ž…๋ ฅ์„ค๋ช… ์ฒซ ์ค„์— ํ›„์œ„์—ฐ์‚ฐ์‹์ด ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. ์—ฐ์‚ฐ์‹์˜ ๊ธธ์ด๋Š” 50์„ ๋„˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์‹์€ 1~9์˜ ์ˆซ์ž์™€ +, -, *, / ์—ฐ์‚ฐ์ž๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„๋‹ค. โ–ฃ ์ถœ๋ ฅ์„ค๋ช… ์—ฐ์‚ฐํ•œ ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค. โ–ฃ ์ž…๋ ฅ์˜ˆ์ œ 1 352+*9- โ–ฃ ์ถœ๋ ฅ์˜ˆ์ œ 1 12 Tip ๋ฌธ์ œํ’€์ด //๊ฐ•์˜ ๋“ฃ๊ณ  ๋‚ด๊ฐ€ ๋‹ค์‹œ ์ž‘์„ฑํ•œ ๋‹ต function solution(string){ let answer; let stack = []; for(let x of string){ if(!isNaN(x)) { conso..

๊ด„ํ˜ธ ๋ฌธ์ž ์ œ๊ฑฐ(์ž๋ฃŒ๊ตฌ์กฐ-์Šคํƒ)

๋ฌธ์ œ(์ถœ์ฒ˜ : ์ธํ”„๋Ÿฐ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œํ’€์ด ๊ฐ•์˜, ์ •๋ณด์˜ฌ๋ฆผํ”ผ์•„๋“œ) ์ž…๋ ฅ๋œ ๋ฌธ์ž์—ด์—์„œ ์†Œ๊ด„ํ˜ธ ( ) ์‚ฌ์ด์— ์กด์žฌํ•˜๋Š” ๋ชจ๋“  ๋ฌธ์ž๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ๋‚จ์€ ๋ฌธ์ž๋งŒ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์„ธ์š”. โ–ฃ ์ž…๋ ฅ์„ค๋ช… ์ฒซ ์ค„์— ๋ฌธ์ž์—ด์ด ์ฃผ์–ด์ง„๋‹ค. ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋Š” 100์„ ๋„˜์ง€ ์•Š๋Š”๋‹ค. โ–ฃ ์ถœ๋ ฅ์„ค๋ช… ๋‚จ์€ ๋ฌธ์ž๋งŒ ์ถœ๋ ฅํ•œ๋‹ค. โ–ฃ ์ž…๋ ฅ์˜ˆ์ œ 1 (A(BC)D)EF(G(H)(IJ)K)LM(N) โ–ฃ ์ถœ๋ ฅ์˜ˆ์ œ 1 EFLM Tip ๋ฌธ์ œํ’€์ด //๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ๋‹ต function solution(string){ let answer; let stack = []; for(let x of string){ if(x !== ')'){ stack.push(x); }else{ while(stack.pop() !== '('); //

์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ(์ž๋ฃŒ๊ตฌ์กฐ-์Šคํƒ)

๋ฌธ์ œ(์ถœ์ฒ˜ : ์ธํ”„๋Ÿฐ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œํ’€์ด ๊ฐ•์˜, ์ •๋ณด์˜ฌ๋ฆผํ”ผ์•„๋“œ) ๊ด„ํ˜ธ๊ฐ€ ์ž…๋ ฅ๋˜๋ฉด ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ์ด๋ฉด “YES", ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์œผ๋ฉด ”NO"๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค. (())() ์ด๊ฒƒ์€ ๊ด„ํ˜ธ์˜ ์Œ์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์œ„์น˜ํ•˜๋Š” ๊ฑฐ์ง€๋งŒ, (()()))์€ ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ๊ฐ€ ์•„๋‹ˆ๋‹ค. โ–ฃ ์ž…๋ ฅ์„ค๋ช… ์ฒซ ๋ฒˆ์งธ ์ค„์— ๊ด„ํ˜ธ ๋ฌธ์ž์—ด์ด ์ž…๋ ฅ๋ฉ๋‹ˆ๋‹ค. ๋ฌธ์ž์—ด์˜ ์ตœ๋Œ€ ๊ธธ์ด๋Š” 30์ด๋‹ค. โ–ฃ ์ถœ๋ ฅ์„ค๋ช… ์ฒซ ๋ฒˆ์งธ ์ค„์— YES, NO๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. โ–ฃ ์ž…๋ ฅ์˜ˆ์ œ 1 (()(()))(() โ–ฃ ์ถœ๋ ฅ์˜ˆ์ œ 1 NO Tip ๋ฌธ์ œํ’€์ด //์Šคํƒ์„ ํ™œ์šฉํ•ด์„œ ๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ๋‹ต function solution(string){ let answer = 'YES'; let stack = []; for(let x of string){ if(x === '('){ stack.push(x) ..