[Algorithm] - 2020 Kakao InternShip for Tech Developers Coding test ๋ฌธ์ œ ํ’€์ด

๋ฐ˜์‘ํ˜•

์ตœ๊ทผ ๋“ค์–ด ๊ฐœ์ธ ํ”„๋กœ์ ํŠธ, ๊ฐ์ข… ํ…Œ์ŠคํŠธ ๋“ฑ์œผ๋กœ ์ธํ•˜์—ฌ ๋ธ”๋กœ๊ทธ์— ๋Œ€ํ•œ ๊ธ€ ํฌ์ŠคํŒ…์ด ์ž์ฃผ ์•ˆ๋˜๊ณ  ์žˆ๋Š” ์ ์— ๋Œ€ํ•ด ๊นŠ์ด ๋ฐ˜์„ฑํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

 

๊ทธ๋Ÿฐ ๊ณ„๊ธฐ๋กœ ํ•˜์—ฌ๊ธˆ ์˜ค๋Š˜์€ ์ œ๊ฐ€ ๋‚ด์ผ ์น˜๋ฃจ๊ฒŒ ๋  ์ฝ”๋”ฉํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด ์˜ค๋Š˜ ํ•˜๋ฃจ ๋‚ ์„ ์žก๊ณ , ์—ฐ์Šตํ•˜๊ฒŒ ๋˜์—ˆ๋Š”๋ฐ์š”. ์ด๋ฒˆ ํฌ์ŠคํŠธ๋Š” ์นด์นด์˜ค ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๋ฌธ์ œ ๋‘ ๋ฒˆ์งธ์ธ 2020 ์นด์นด์˜ค ์ธํ„ด์‹ญ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๋ฌธ์ œ ํ’€์ด์™€ ์งค๋ง‰ํ•œ ํ›„๊ธฐ๋ฅผ ๋‚จ๊ฒจ๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค.

 

(์ฐธ๊ณ ๋กœ ์ด๋ฒˆ ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ๋Š” ๋‚œ์ด๋„๊ฐ€ ๊ฝค ์–ด๋ ค์› ์Šต๋‹ˆ๋‹ค.)

 

 

 

Question 01. ํ‚คํŒจ๋“œ ๋ˆ„๋ฅด๊ธฐ

๋ฌธ์ œ ์›๋ฌธ: (https://programmers.co.kr/learn/courses/30/lessons/67256)

 

์Šค๋งˆํŠธํฐ ์ „ํ™” ํ‚คํŒจ๋“œ์˜ ๊ฐ ์นธ์— ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ˆซ์ž๋“ค์ด ์ ํ˜€ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์ด ์ „ํ™” ํ‚คํŒจ๋“œ์—์„œ ์™ผ์†๊ณผ ์˜ค๋ฅธ์†์˜ ์—„์ง€์†๊ฐ€๋ฝ๋งŒ์„ ์ด์šฉํ•ด์„œ ์ˆซ์ž๋งŒ์„ ์ž…๋ ฅํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ˆœ์„œ๋Œ€๋กœ ๋ˆ„๋ฅผ ๋ฒˆํ˜ธ๊ฐ€ ๋‹ด๊ธด ๋ฐฐ์—ด numbers, ์™ผ์†์žก์ด์ธ์ง€ ์˜ค๋ฅธ์†์žก์ด์ธ ์ง€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฌธ์ž์—ด hand๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, ๊ฐ ๋ฒˆํ˜ธ๋ฅผ ๋ˆ„๋ฅธ ์—„์ง€์†๊ฐ€๋ฝ์ด ์™ผ์†์ธ ์ง€ ์˜ค๋ฅธ์†์ธ ์ง€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์—ฐ์†๋œ ๋ฌธ์ž์—ด ํ˜•ํƒœ๋กœ return ํ•˜๋„๋ก ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ž‘์„ฑํ•˜๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

 

 

Solution for Question 01

์ฒ˜์Œ ์ด ๋ฌธ์ œ๋ฅผ ํ’€์—ˆ์„ ๋•Œ, ๊ณผ๊ฑฐ ์ฒซ ์นด์นด์˜ค ์ฝ”๋”ฉํ…Œ์ŠคํŠธ๊ฐ€ ์žˆ์—ˆ๋˜ ์ขŒํ‘œ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฐ๋‚ฌ์Šต๋‹ˆ๋‹ค. ์ขŒํ‘œ๋ฅผ ์ด์šฉํ•˜์—ฌ ํ’€ ๋˜, ์•ฝ๊ฐ„ ๊ผฌ์€ ๋ฌธ์ œ์˜€์œผ๋ฉฐ ์™ผ์ชฝ ์†๊ฐ€๋ฝ์˜ ์ „์šฉ ๊ตฌ๊ฐ„๊ณผ ์˜ค๋ฅธ์ชฝ ์†๊ฐ€๋ฝ์˜ ์ „์šฉ ๊ตฌ๊ฐ„์„ ๊ตฌ๋ถ„ํ•˜๊ณ , ๊ฐ€์šด๋ฐ ๋ถ€๋ถ„์€ ์ขŒํ‘œ ๊ณ„์‚ฐ์„ ์ด์šฉํ•˜๋ฉด ์‰ฝ๊ฒŒ ๊ตฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์ด ๋ฌธ์ œ๋ฅผ ๊ฐ€์žฅ ๊น”๋”ํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์€ ์ขŒํ‘œ๋ฅผ ํด๋ž˜์Šคํ™”ํ•˜์—ฌ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋น ๋ฅด๊ฒŒ ๊ตฌํ˜„ํ•˜๊ณ ์ž ํ•œ๋‹ค๋ฉด 2์ฐจ์› ๋ฐฐ์—ด๋กœ ๋ฌด์ž‘์ • ์งœ๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ๊ฒ ์ง€๋งŒ ์ขŒํ‘œ์˜ ํด๋ž˜์Šค๋ฅผ ๋ฏธ๋ฆฌ ๊ตฌํ˜„ํ•˜์—ฌ ๋†“๋Š”๋‹ค๋ฉด ์ข€ ๋” ๊ฐ€๋…์„ฑ์ด ์ข‹์€ ์ฝ”๋“œ๋ฅผ ์งค ์ˆ˜ ์žˆ์ฃ .

 

๊ทธ ์™ธ์—๋Š” ์ขŒํ‘œ ํ‰๋ฉด์˜ ๊ฑฐ๋ฆฌ ๊ณต์‹์„ ์ด์šฉํ•˜์—ฌ ๊ฐ€๊นŒ์šด ์ชฝ์— ํ•ด๋‹นํ•˜๋Š” ๋ถ€๋ถ„์„ ๋†“์Šต๋‹ˆ๋‹ค. ๋งŒ์•ฝ ๊ฑฐ๋ฆฌ๊ฐ€ ๊ฐ™๋‹ค๋ฉด ํ•ด๋‹น ๋ฌธ์ œ์—์„œ ์ฃผ์–ด์ง€๋Š” ์†์žก์ด๋ฅผ ์ด์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

 

 

 

Question 02. ์ˆ˜์‹ ์ตœ๋Œ€ํ™”

๋ฌธ์ œ ์›๋ฌธ: (https://programmers.co.kr/learn/courses/30/lessons/67257)

 

IT ๋ฒค์ฒ˜ ํšŒ์‚ฌ๋ฅผ ์šด์˜ํ•˜๊ณ  ์žˆ๋Š” ๋ผ์ด์–ธ์€ ๋งค๋…„ ์‚ฌ๋‚ด ํ•ด์ปคํ†ค ๋Œ€ํšŒ๋ฅผ ๊ฐœ์ตœํ•˜์—ฌ ์šฐ์Šน์ž์—๊ฒŒ ์ƒ๊ธˆ์„ ์ง€๊ธ‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ๋Œ€ํšŒ์—์„œ๋Š” ์šฐ์Šน์ž์—๊ฒŒ ์ง€๊ธ‰๋˜๋Š” ์ƒ๊ธˆ์„ ์ด์ „ ๋Œ€ํšŒ์™€๋Š” ๋‹ค๋ฅด๊ฒŒ ํŠน๋ณ„ํ•œ ๋ฐฉ์‹์œผ๋กœ ๊ฒฐ์ •ํ•˜๋ ค๊ณ  ํ•˜๋ฉฐ, ๊ทธ ๋ฐฉ์‹์— ๋งž๊ฒŒ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ตฌํ˜„ํ•˜๋ฉด ๋˜๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

 

 

Solution for Question 02

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

 

์žฌ๊ท€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ†ตํ•ด ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๊ตฌํ•œ๋‹ค๋ฉด ๋‚˜๋จธ์ง€๋Š” ์‰ฝ๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. HashSet์„ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•ด์„œ ๊ฐ ์šฐ์„ ์ˆœ์œ„์— ๋งž๋Š” ํ•ฉ๊ณ„๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ ์ข€ ๋” ์‰ฝ๊ฒŒ Java 8์˜ ์ŠคํŠธ๋ฆผ์„ ์‚ฌ์šฉํ•ด์„œ List๋กœ ๋ณ€ํ™˜ํ•ด์ค€ ๊ฒƒ์€ ๋น„๋ฐ€...

 

 

 

Question 03. ๋ณด์„ ์‡ผํ•‘

๋ฌธ์ œ ์›๋ฌธ: (https://programmers.co.kr/learn/courses/30/lessons/67258)

 

๊ฐœ๋ฐœ์ž ์ถœ์‹ ์œผ๋กœ ์„ธ๊ณ„ ์ตœ๊ณ ์˜ ๊ฐ‘๋ถ€๊ฐ€ ๋œ ์–ดํ”ผ์น˜๋Š” ์ŠคํŠธ๋ ˆ์Šค๋ฅผ ๋ฐ›์„ ๋•Œ๋ฉด ์ด๋ฅผ ํ’€๊ธฐ ์œ„ํ•ด ์˜คํ”„๋ผ์ธ ๋งค์žฅ์— ์‡ผํ•‘์„ ํ•˜๋Ÿฌ ๊ฐ€๊ณค ํ•ฉ๋‹ˆ๋‹ค. ์–ดํ”ผ์น˜๋Š” ์‡ผํ•‘์„ ํ•  ๋•Œ๋ฉด ๋งค์žฅ ์ง„์—ด๋Œ€์˜ ํŠน์ • ๋ฒ”์œ„์˜ ๋ฌผ๊ฑด๋“ค์„ ๋ชจ๋‘ ์‹น์“ธ์ด ๊ตฌ๋งคํ•˜๋Š” ์Šต๊ด€์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์–ด๋Š ๋‚  ์ŠคํŠธ๋ ˆ์Šค๋ฅผ ํ’€๊ธฐ ์œ„ํ•ด ๋ณด์„ ๋งค์žฅ์— ์‡ผํ•‘์„ ํ•˜๋Ÿฌ ๊ฐ„ ์–ดํ”ผ์น˜๋Š” ์ด์ „์ฒ˜๋Ÿผ ์ง„์—ด๋Œ€์˜ ํŠน์ • ๋ฒ”์œ„์˜ ๋ณด์„์„ ๋ชจ๋‘ ๊ตฌ๋งคํ•˜๋˜ ํŠน๋ณ„ํžˆ ์–ด๋–ค ๋ชฉ์ ์„ ๋‹ฌ์„ฑํ•˜๊ณ  ์‹ถ์—ˆ๊ณ , ๊ทธ ๋ชฉ์ ์€ ์ง„์—ด๋œ ๋ชจ๋“  ์ข…๋ฅ˜์˜ ๋ณด์„์„ ์ ์–ด๋„ 1๊ฐœ ์ด์ƒ ํฌํ•จํ•˜๋Š” ๊ฐ€์žฅ ์งง์€ ๊ตฌ๊ฐ„์„ ์ฐพ์•„์„œ ๊ตฌ๋งคํ•˜๋Š” ๊ฒƒ์ด๋ฉฐ ๋ชจ๋“  ๋ณด์„์„ ๊ฐ€์žฅ ์งง์€ ๊ตฌ๊ฐ„์œผ๋กœ ๊ตฌ๋งคํ•  ์ˆ˜ ์žˆ๋Š” ๋ฒ”์œ„๋ฅผ ์ฐพ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฌธ์ œ์˜€์Šต๋‹ˆ๋‹ค.

 

 

Solution for Question 03

์‹ค์ œ ํ…Œ์ŠคํŠธ ๋‹น์‹œ ์ด ๋ฌธ์ œ๋ฅผ ์ •๋ง ์–ด๋ ต๊ฒŒ ๋Š๊ผˆ๋Š”๋ฐ, ํ’€์ด๋ฅผ ๋ณด๊ณ ๋‚˜์„œ ํ—ˆํƒˆํ•œ ๋Š๋‚Œ์„ ๋งŽ์ด ๋ฐ›์€ ๋ฌธ์ œ์˜€์Šต๋‹ˆ๋‹ค. ์กฐ๊ฑด๋ฌธ ํ•จ์ •์ด ๊ฑธ๋ ค ์žˆ์–ด์„œ, ์กฐ๊ฑด๋ฌธ์„ ์ž˜๋ชป ์ž‘์„ฑํ•˜๋ฉด ์‰ฝ๊ฒŒ ํ’€์–ด์ง€์ง€ ์•Š๋Š” ๋ฌธ์ œ์˜€์Šต๋‹ˆ๋‹ค. ๊ณต์‹ ํ•ด์„ค์„ ์ฐธ๊ณ ํ•˜์—ฌ ํ•ด์„ค๋Œ€๋กœ ๋ฌธ์ œ๋ฅผ ํ’€์ดํ•˜๋‹ˆ, ์ž˜ ํ’€๋ฆฐ๋‹ค๋Š”... ใ… ใ… 

 

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

 

 

 

 

Question 04 ๊ฒฝ์ฃผ๋กœ ๊ฑด์„ค

๋ฌธ์ œ ์›๋ฌธ: (https://programmers.co.kr/learn/courses/30/lessons/67259)

 

๊ฑด์„คํšŒ์‚ฌ์˜ ์„ค๊ณ„์‚ฌ์ธ ์ฃ ๋ฅด๋””๋Š” ๊ณ ๊ฐ์‚ฌ๋กœ๋ถ€ํ„ฐ ์ž๋™์ฐจ ๊ฒฝ์ฃผ๋กœ ๊ฑด์„ค์— ํ•„์š”ํ•œ ๊ฒฌ์ ์„ ์˜๋ขฐ๋ฐ›์•˜๊ณ , ํ•ด๋‹น ๊ฒฝ์ฃผ๋กœ๋Š” 1 x 1 ํฌ๊ธฐ ํ˜•ํƒœ์˜ ๊ฒฉ์ž๋กœ ๊ตฌ์„ฑ๋˜์—ˆ์œผ๋ฉฐ ๊ฒฝ์ฃผ๋กœ๋ฅผ ๊ฑด์„คํ•˜๋Š” ๋ฐ ์ตœ์†Œ ๋น„์šฉ์„ ๊ตฌํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ์กฐ๊ฑด์ด ์กฐ๊ธˆ ๊นŒ๋‹ค๋กœ์› ๋Š”๋ฐ, ์ด ๋ฌธ์ œ๋ถ€ํ„ฐ ์–ด๋ ค์›Œ์ง€๊ธฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

 

(์ž์„ธํ•œ ๋ฌธ์ œ๋Š” ์›๋ฌธ์„ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š”.)

 

 

Solution for Question 04

์ด ๋ฌธ์ œ๋Š” ๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰(BFS)์„ ์ด์šฉํ•ด์„œ ํ’€ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ต์ˆ™ํ•˜์ง€ ์•Š์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ผ๋ฉด ๊ฝค ์ดํ•ดํ•˜๊ธฐ ์–ด๋ ค์šด ๋ฌธ์ œ์˜€์œผ๋ฉฐ ๊ตฌํ˜„๋„ ์‰ฝ์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. 

 

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

 

ํด๋ž˜์Šค๋ฅผ ๊ตฌ์„ฑํ•  ๋•Œ ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ๊ฐ€๋Šฅํ•œ ํ™œ์šฉํ•˜๋Š” ๊ฒƒ๋„ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ตฌํ˜„์˜ ํฌ์ธํŠธ์ž…๋‹ˆ๋‹ค. ํŠนํžˆ Java ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ๋ง์ด์ฃ . ๊ทธ๋ฆฌ๊ณ  ๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰์€ ๋ฐฉ๋ฌธํ–ˆ๋˜ ์ •๋ณด๋ฅผ ๋‚จ๊ธฐ๋Š” ๋ณ€์ˆ˜๋ฅผ ๊ฐ™์ด ์‚ฌ์šฉํ•˜๋ฉด ์ค‘๋ณตํ•ด์„œ ๋ฐฉ๋ฌธํ•˜๋Š” ํšŸ์ˆ˜๋ฅผ ์ค„์ด๋ฉด์„œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์ด๋Ÿฌํ•œ ๋ฐฉ๋ฒ•์„ ์ด์šฉํ•˜์—ฌ ๋™, ์„œ, ๋‚จ, ๋ถ ๋ชจ๋‘๋ฅผ ์ˆœํšŒํ•˜๋Š”๋ฐ, ์ด ๋•Œ 1 x 1 ๊ฒฉ์ž์ž„์„ ๊ฐ์•ˆํ•จ๊ณผ ๋™์‹œ์— ๋ฌธ์ œ ์กฐ๊ฑด์ธ ๋ฒฝ์ธ ๊ฒฝ์šฐ๋ฅผ ๊ฐ์•ˆํ•˜์—ฌ ์ด๋™ ์œ„์น˜๊ฐ€ ๋ฒฝ์ด๊ฑฐ๋‚˜, ๊ฒฉ์ž๋ฅผ ๋„˜์„ ๊ฒฝ์šฐ๋ฅผ ํŒ๋‹จํ•˜๋Š” ๋ฉ”์†Œ๋“œ๋ฅผ ๊ตฌํ˜„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋งˆ์ง€๋ง‰์œผ๋กœ ์›€์ง์˜€๋˜ ๋ฐฉํ–ฅ๊ณผ ๋น„์šฉ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋น„์šฉ์„ ์‚ฐ์ •ํ•˜๊ณ , ์ตœ์†Œ ๋น„์šฉ์„ ๊ตฌํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

 

 

Question 05. ๋™๊ตด ํƒํ—˜

๋ฌธ์ œ ์›๋ฌธ: (https://programmers.co.kr/learn/courses/30/lessons/67260)

 

์˜ค์ง€ ํƒํ—˜๊ฐ€์ธ ํ”„๋กœ๋„๋Š” ํƒํ—˜ ๋„์ค‘ n๊ฐœ์˜ ๋ฐฉ์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ์ง€ํ•˜ ๋™๊ตด์„ ํƒํ—˜ํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ๋ฐฉ์—๋Š” 0๋ถ€ํ„ฐ n - 1 ๊นŒ์ง€ ๋ฒˆํ˜ธ๊ฐ€ ๋ถ™์–ด์žˆ๊ณ , ์ด ๋™๊ตด์— ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋Š” ์œ ์ผํ•œ ์ž…๊ตฌ๋Š” 0๋ฒˆ ๋ฐฉ๊ณผ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ๋ฐฉ๋“ค์€ ์–‘๋ฐฉํ–ฅ์œผ๋กœ ํ†ตํ–‰์ด ๊ฐ€๋Šฅํ•œ ํ†ต๋กœ๋กœ ์„œ๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š”๋ฐ, ์„œ๋กœ ๋‹ค๋ฅธ ๋‘ ๋ฐฉ์„ ์ง์ ‘ ์—ฐ๊ฒฐํ•˜๋Š” ํ†ต๋กœ๋Š” ์˜ค์ง ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ์ž„์˜์˜ ์„œ๋กœ ๋‹ค๋ฅธ ๋‘ ๋ฐฉ ์‚ฌ์ด์˜ ์ตœ๋‹จ๊ฒฝ๋กœ๋Š” ๋”ฑ ํ•œ ๊ฐ€์ง€๋งŒ ์žˆ์œผ๋ฉฐ, ๋˜ํ•œ ์ž„์˜์˜ ๋‘ ๋ฐฉ ์‚ฌ์ด์— ์ด๋™์ด ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ๋Š” ์—†์Šต๋‹ˆ๋‹ค. 

ํƒํ—˜์— ์•ž์„œ ํ”„๋กœ๋„๋Š” ๋ชจ๋“  ๋ฐฉ์„ ์ ์–ด๋„ ํ•œ ๋ฒˆ ๋ฐฉ๋ฌธํ•  ๊ณ„ํš์„ ์„ธ์› ๊ณ , ๋™๊ตด ๋‚ด ๋ฐฉ์—๋Š” ์ˆœํšŒํ•˜๊ธฐ ์œ„ํ•ด ๋ฐ˜๋“œ์‹œ ๊ฑฐ์ณ์•ผํ•˜๋Š” ๋™๊ตด์ด ์žˆ๋Š”๋ฐ, ์ด๋“ค์„ ๋ชจ๋‘ ํฌํ•จํ•˜์—ฌ ๊ณ„ํš๋Œ€๋กœ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š”์ง€๋ฅผ ํŒ๋‹จํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ตฌํ˜„ํ•˜๋ฉด ๋˜๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

 

 

Solution for Question 05

๊ฐœ์ธ์ ์œผ๋กœ ์ด๋ฒˆ ๋ฌธ์ œ ์ค‘์—์„œ ๊ฐ€์žฅ ์–ด๋ ค์› ๋˜ ์ตœ๊ณ  ๋‚œ์ด๋„ ๋ฌธ์ œ์˜€์Šต๋‹ˆ๋‹ค..

 

์˜ˆ์‹œ๋ฅผ ๋ณด๋ฉด ๊ฐ€์žฅ ๋จผ์ € ๋– ์˜ค๋ฅด๋Š” ๊ฒƒ์€ ๊ทธ๋ž˜ํ”„์˜€๊ธฐ ๋•Œ๋ฌธ์— ๋‹น๋‹นํ•˜๊ฒŒ DFS๋กœ ๋ฌธ์ œ ํ’€์ด๋ฅผ ์‹œ๋„ ํ–ˆ์ง€๋งŒ ๊ฒฐ๊ณผ๋Š” ์ข‹์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์ œํ•œ ๊ธธ์ด๊ฐ€ 200,000์ด์—ˆ๊ณ , ์ด ๋•Œ๋ฌธ์— ์‹œ๊ฐ„ ์ดˆ๊ณผ๊ฐ€ ๋‚œ ๊ฒƒ... ใ… ใ… 

 

์–ด๋–ป๊ฒŒ ํ’€์ง€๋ฅผ ๊ณ ๋ฏผํ•˜๋‹ค๊ฐ€ ๊ณต์‹ ํ•ด์„ค์„ ๋ณด๊ณ  BFS๋กœ ํ‘ธ๋Š” ๊ฒƒ์ด ์ •๋‹ต์ด๋ผ๊ณ  ํŒ๋‹จํ•˜์˜€์Šต๋‹ˆ๋‹ค. 4๋ฒˆ ๋ฌธ์ œ์™€ ๋™์ผํ•˜๊ฒŒ Queue๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฉ๋ฌธ ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ค๊ณ  ์‹œ๋„ํ•˜์˜€๋Š”๋ฐ, ์ด ๋•Œ ํฌ์ธํŠธ๋ฅผ ์žก์€ ๊ฒƒ์€ ๊ฐ ๋…ธ๋“œ๊ฐ€ ์‚ฌ์ดํดํ•˜๋Š”์ง€์˜ ์—ฌ๋ถ€๋ฅผ ํŒ๋‹จํ•˜๋Š” ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ์—ฌ๋ถ€๋ฅผ ์žก์„ ์ˆ˜ ์žˆ๋‹ค๋ฉด ํ•ด๋‹น ๋™๊ตด์„ ๋ชจ๋‘ ํƒ์ƒ‰ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์—†๋Š”์ง€๋ฅผ ์žก์„ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. (์ •๋ง ์–ด๋ ค์› ์Šต๋‹ˆ๋‹ค ์ด ๋ถ€๋ถ„...)

 

 

 

๋งˆ์น˜๋ฉฐ...

์—ฌ๊ธฐ๊นŒ์ง€ ์นด์นด์˜ค ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ๋กœ ์—ฐ์Šต์„ ์กฐ๊ธˆ ํ•ด๋ดค๋Š”๋ฐ์š”. ์ด ์—ฐ์Šต์„ ํ•˜๊ฒŒ ๋œ ๊ณ„๊ธฐ๋Š” ์ตœ๊ทผ ํ•ด์„ค์ด ์˜ฌ๋ผ์™”๋‹ค๋Š” ์ด์•ผ๊ธฐ๋ฅผ ๋“ฃ๊ฒŒ ๋˜์—ˆ๊ณ , ์กฐ๋งŒ๊ฐ„ ํ•  ์ƒ๊ฐ์ด์—ˆ๋Š”๋ฐ, ์ƒ๊ฐ์น˜ ๋ชปํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ…Œ์ŠคํŠธ๋กœ ์ธํ•˜์—ฌ ์†”๋ฃจ์…˜ ๊ตฌํ˜„์— ๋งค์ง„ํ•˜๋‹ค๋ณด๋‹ˆ ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ๋ฅผ ํ‘ธ๋Š” ๋ฐ ์‹œ๊ฐ„์ด ์กฐ๊ธˆ ๊ฑธ๋ฆฌ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

 

๊ฐœ์ธ์ ์œผ๋กœ ์ด๋ฒˆ ๋ฌธ์ œ๋Š” ์ •๋ง ๋‚œ์ด๋„๊ฐ€ ์ˆ˜์ค€๊ธ‰ ์ด์ƒ์ด์—ˆ์œผ๋ฉฐ ํŠนํžˆ 4๋ฒˆ๊ณผ 5๋ฒˆ ๋ฌธ์ œ๋Š” Computer Science์—์„œ ์ˆ˜๊ฐ•ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ณผ๋ชฉ์„ ์ œ๋Œ€๋กœ ์ด์ˆ˜ํ•˜์ง€ ์•Š์•˜๊ฑฐ๋‚˜ ์ž˜ ์ดํ•ดํ•˜์ง€ ๋ชปํ•˜๋ฉด ํ’€๊ธฐ ์–ด๋ ค์› ๋˜ ๋ฌธ์ œ์˜€์Šต๋‹ˆ๋‹ค.

 

 

(์ด๋ ‡๊ฒŒ ๋งํ•ด๋†“๊ณ  3๋ฒˆ ๋ฌธ์ œ๋„ ์ œ๋Œ€๋กœ ๋ชป ํ‘ผ ๊ฑด ๋น„๋ฐ€....)

 

 

์—ฌ๊ธฐ๊นŒ์ง€ 2020 ์นด์นด์˜ค ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ ์ธํ„ด ํ’€์ด์˜€์Šต๋‹ˆ๋‹ค.

 

 

 

์ฐธ๊ณ : https://tech.kakao.com/2020/07/01/2020-internship-test/

๋ฐ˜์‘ํ˜•
TAGS.

Tistory Comments