[Algorithm] - 2019 Kakao Winter internship Coding test ๋ฌธ์ œ ํ’€์ด

๋ฐ˜์‘ํ˜•

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

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

ํ•˜์ง€๋งŒ ๋ช‡ ๋‹ฌ์ด ์ง€๋‚˜๋„ ํ•ด๋‹น ์ฝ”๋”ฉํ…Œ์ŠคํŠธ์— ๋Œ€ํ•œ ๋ฌธ์ œ ํ’€์ด ํ•ด์„ค์€ ๋ณด์ด์ง€ ์•Š์•˜๊ณ , ๊ทธ ํ•ด์„ค์„ ์ตœ๊ทผ์—์„œ์•ผ ๋ฐœ๊ฒฌํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
(๊ทธ๊ฒƒ๋„ Google ๊ฒ€์ƒ‰์ด ์นœ์ ˆํ•˜๊ฒŒ ์ด๊ฒƒ์ด ์žˆ๋‹ค๋Š” ๊ฑธ ์•Œ๋ ค์คฌ๋‹ค๋Š”...) 

๊ทธ๋ž˜์„œ ์ด๋ฒˆ ํฌ์ŠคํŠธ์—์„œ๋Š” 2019๋…„ ๊ฒจ์šธ ์นด์นด์˜ค ์ธํ„ด์‹ญ ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ์— ๋Œ€ํ•œ ๋ฌธ์ œ์™€ ํ’€์ด, ๊ทธ๋ฆฌ๊ณ  ์งค๋ง‰ํ•œ ํ›„๊ธฐ์— ๋Œ€ํ•ด ๊ฐ„๋‹จํ•˜๊ฒŒ ์ ์–ด๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค.

 

 

Question 01. ํฌ๋ ˆ์ธ ์ธํ˜• ๋ฝ‘๊ธฐ ๊ฒŒ์ž„

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

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

ํฌ๋ ˆ์ธ ์ž‘๋™์‹œ, ์ธํ˜•์„ ๋†“์น˜๋Š” ๊ฒฝ์šฐ๋Š” ์—†๊ณ , ๋ฌธ์ œ๋Š” 2์ฐจ์› ๋ฐฐ์—ด board์™€ ์ธํ˜•์„ ์žก๊ธฐ ์œ„ํ•ด ํฌ๋ ˆ์ธ์„ ์ž‘๋™์‹œํ‚จ ์œ„์น˜ ์ขŒํ‘œ๋ฅผ ๋ฐฐ์—ด moves์— ๋งค๊ฐœ ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, ํฌ๋ ˆ์ธ์„ ๋ชจ๋‘ ์ž‘๋™์‹œํ‚จ ํ›„, ํ„ฐ๋œจ๋ ค์„œ ์‚ฌ๋ผ์ง„ ์ธํ˜•์˜ ๊ฐฏ์ˆ˜๋ฅผ returnํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

(๊ธ€ ๋ถ„๋Ÿ‰์„ ์œ„ํ•ด์„œ ์ž์„ธํ•œ ์ œํ•œ ์‚ฌํ•ญ๊ณผ ๋ฌธ์ œ์— ๋Œ€ํ•œ ์ œ์•ฝ ์‚ฌํ•ญ์— ๋Œ€ํ•ด์„œ๋Š” ์ƒ๋žตํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.)

 

Solution for Question 01

์ด ๋ฌธ์ œ๋Š” ์• ๋‹ˆํŒก ๊ฒŒ์ž„๊ณผ ๋น„์Šทํ•œ ์œ ํ˜•์˜ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ์• ๋‹ˆํŒก์˜ ๊ฒฝ์šฐ ๊ฐ€๋กœ, ์„ธ๋กœ, ๊ฐ™์€ ์บ๋ฆญํ„ฐ์˜ 3๊ฐœ๋ฅผ ํ„ฐ๋œจ๋ฆฌ๋Š” ๊ฒƒ์ด์ง€๋งŒ, ์ด ๊ฒŒ์ž„์€ 1 x 1 ํฌ๊ธฐ์˜ ๋ฐฐ์—ด์—์„œ ๊ฐ™์€ ์บ๋ฆญํ„ฐ๋ฅผ ๋‘ ๊ฐœ ๋งŒ๋‚˜๋ฉด ํ„ฐ๋œจ๋ฆฌ๋Š” ๊ฐฏ์ˆ˜๋ฅผ ๊ตฌํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋˜๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

์œ„ ์ด๋ฏธ์ง€์—์„œ ์กฐ๊ธˆ ํžŒํŠธ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํฌ๋ ˆ์ธ ๋ฐ”๋กœ ๋ฐ‘์— ๊ทธ๋ ค์ง„ 5 x 5 ํฌ๊ธฐ์˜ ๊ฒฉ์ž๋Š” boards๋ผ๋Š” ๋งค๊ฐœ ๋ณ€์ˆ˜์—์„œ ์ฃผ์–ด์ง€๊ธฐ ๋•Œ๋ฌธ์— ์šฐ๋ฆฌ๋Š” ์ด๋ฅผ ์‹ ๊ฒฝ์“ฐ์ง€ ์•Š์•„๋„ ๋ฉ๋‹ˆ๋‹ค. ์˜†์— ์žˆ๋Š” ์›€์ง์—ฌ์„œ ์‚ฌ๋ผ์ง€๋Š” ์นด์นด์˜ค ์บ๋ฆญํ„ฐ๋“ค์„ ์ž˜๋ณด๋ฉด, Stack์ด๋ผ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์™€ ์›€์ง์ด๋Š” ๋ชจ์Šต์ด ๋งค์šฐ ํก์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋‚˜์ค‘์— ์Œ“์ธ ์• ๋“ค์ด ์ˆœ์„œ๋Œ€๋กœ ์—†์–ด์ง€๋Š” Last in First Out (LIFO) ํ˜•ํƒœ์ด์ง€์š”.

๋”ฐ๋ผ์„œ ์•„๋ž˜์™€ ๊ฐ™์€ ํ˜•ํƒœ๋กœ ์ฝ”๋“œ๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋จผ์ € ์ขŒํ‘œ๋ฅผ ๋ณด๊ธฐ ์ „์—, ์ธํ˜• ๋ณด๋“œ๋ฅผ ํƒ์ƒ‰ํ•˜๋Š” ๊ฒƒ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์—ฌ ์ž…๋ ฅ๋œ ์ขŒํ‘œ๋ฅผ ๋ณด๊ณ , ํ•˜๋‚˜์”ฉ ์ธํ˜•์„ ๋„ฃ์–ด์ฃผ๋Š” ๋ฐฉ์‹์œผ๋กœ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ตฌํ˜„ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ , ์ธํ˜•์„ ๋„ฃ๊ณ  ๋‚˜์„œ, ๋„ฃ์–ด์ง„ ์ธํ˜•์„ ๊ฒ€์‚ฌํ•˜์—ฌ ๊ฐ™์€ ์ธํ˜•์ด๋ฉด ๊ทธ์˜ ๊ฐฏ์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•ด์„œ ๋„ฃ์–ด์ฃผ๋ฉด ์‰ฝ๊ฒŒ ๊ตฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

Question 02. ํŠœํ”Œ

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

์…€ ์ˆ˜ ์žˆ๋Š” ์ˆ˜๋Ÿ‰์˜ ์ˆœ์„œ์žˆ๋Š” ์—ด๊ฑฐ ๋˜๋Š” ์–ด๋–ค ์ˆœ์„œ๋ฅผ ๋”ฐ๋ฅด๋Š” ์š”์†Œ๋“ค์˜ ๋ชจ์Œ์„ ํŠœํ”Œ(tuple)์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. n๊ฐœ์˜ ์š”์†Œ๋ฅผ ๊ฐ€์ง„ ํŠœํ”Œ์„ n-ํŠœํ”Œ(n-tuple)์ด๋ผ๊ณ  ํ•˜๋ฉฐ, ์ด ํŠœํ”Œ์„ ์ด์šฉํ•ด ์›์†Œ์˜ ๊ฐœ์ˆ˜๊ฐ€ n๊ฐœ์ด๊ณ , ์ค‘๋ณต๋œ ์›์†Œ๊ฐ€ ์—†๋Š” ํŠœํ”Œ์ด ์ฃผ์–ด์งˆ ๋•Œ, ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ํŠœํ”Œ์„ ๋ฐฐ์—ด์— ๋‹ด์•„ ๋ฐ˜ํ™˜ํ•˜๋„๋ก ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

 

Solution for Question 02

์ฒ˜์Œ ์ด ๋ฌธ์ œ๋ฅผ ํ’€์—ˆ์„ ๋•Œ ๊ฐœ์ธ์ ์œผ๋กœ ์ดํ•ด๊ฐ€ ์ข€ ๋งŽ์ด ํž˜๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ํŠœํ”Œ์ด๋ผ๋Š” ๊ฒƒ์€ ์…€ ์ˆ˜ ์žˆ๋Š” ์ˆ˜๋Ÿ‰์˜ ์ˆœ์„œ ์žˆ๋Š” ์—ด๊ฑฐ ๋˜๋Š” ์–ด๋–ค ์ˆœ์„œ๋ผ๋Š” ๋ฐ, ์‚ฌ์‹ค ์—ฌ๊ธฐ์„œ๋ถ€ํ„ฐ ๋‡Œ์ •์ง€๊ฐ€ ์™”์Šต๋‹ˆ๋‹ค..

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

๊ทธ๋ฆฌ๊ณ , ์ด ๋ฌธ์ œ์˜ ํŠน์ง•์€ ๋งค๊ฐœ ๋ณ€์ˆ˜๊ฐ€ Array(๋ฐฐ์—ด) ํ˜•ํƒœ๊ฐ€ ์•„๋‹Œ String(๋ฌธ์ž์—ด) ํ˜•ํƒœ๋กœ ์ฃผ์–ด์ง€๊ธฐ ๋•Œ๋ฌธ์— ๋จผ์ € ์ด ๋ฌธ์ž์—ด ํ˜•ํƒœ๋กœ ๋˜์–ด ์žˆ๋Š” ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ๊ฐ๊ฐ์˜ ์›์†Œ๋กœ ๋ถ„๋ฆฌํ•˜์—ฌ ๋ฐฐ์—ด๋กœ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ฐ๊ฐ์˜ ์ง‘ํ•ฉ๋“ค์ด ๊ด„ํ˜ธ๋กœ ๊ตฌ๋ถ„๋˜์–ด ์žˆ๊ณ , ๊ทธ ์›์†Œ๋“ค์€ ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— Java์—์„œ๋Š” String ํด๋ž˜์Šค์—์„œ ์ œ๊ณตํ•˜๋Š” split ๋ฉ”์†Œ๋“œ๋ฅผ ์ด์šฉํ•˜๋ฉด ์‰ฝ๊ฒŒ ๊ตฌ๋ถ„์ง€์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

๊ทธ๋ฆฌ๊ณ , ๊ฐ ์ˆซ์ž๋“ค์€ String์˜ ๋ฌธ์ž์—ด ํ˜•ํƒœ์ธ๋ฐ, ์ด๋ฅผ ์ •์ˆ˜ ํ˜•ํƒœ๋กœ ๋ฐ”๊ฟ”์ค˜์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ณต์žกํ•˜๊ฒŒ ํ•œ๋‹ค๋ฉด, ๊ฐ ๋ฐ˜๋ณต๋ฌธ์„ ๋Œ์•„์„œ ์ง์ ‘ ์ž๋ฃŒํ˜•์„ ๋ฐ”๊พธ๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ๊ฒ ์ง€๋งŒ ๊ธฐ์™• Java 8์„ ์‚ฌ์šฉํ•  ๊ฒƒ์ด๋ผ๋ฉด Stream์„ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ๋” ๊ฐ„๊ฒฐํ•œ ์ฝ”๋“œ๋กœ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๊ฒ ์ฃ .

๋งˆ์ง€๋ง‰์œผ๋กœ ํ•ด์„ค์— ๋‚˜์™€์žˆ๋Š”๋Œ€๋กœ ๋ฌธ์ œ ํ’€์ด๋ฅผ ์ง„ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ๋ฆฌ์ŠคํŠธ๋ฅผ ํŠœํ”Œ์˜ ๊ฐฏ์ˆ˜์— ๋งž์ถฐ ์ •๋ ฌ์„ ํ•ด์ฃผ๋„๋ก ํ•˜๋ฉด ์ „์ฒ˜๋ฆฌ๋Š” ๋ชจ๋‘ ๋์ž…๋‹ˆ๋‹ค.

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

๊ทธ๋Ÿฐ๋ฐ, ํ…Œ์ŠคํŠธ์—์„œ๋Š” Integer List๊ฐ€ ์•„๋‹Œ int array๋กœ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฒƒ์„ ์š”๊ตฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด ๋˜ํ•œ Java 8์˜ Stream์„ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ์‰ฝ๊ฒŒ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

Question 03. ๋ถˆ๋Ÿ‰ ์‚ฌ์šฉ์ž

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

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

์ด๋ฒคํŠธ ์‘๋ชจ์ž ์•„์ด๋”” ๋ชฉ๋ก์ด ๋‹ด๊ธด ๋ฐฐ์—ด user_id์™€ ๋ถˆ๋Ÿ‰ ์‚ฌ์šฉ์ž ์•„์ด๋”” ๋ชฉ๋ก์ด ๋‹ด๊ธด ๋ฐฐ์—ด banned_id๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, ๋‹น์ฒจ์—์„œ ์ œ์™ธ๋˜์–ด์•ผ ํ•  ์ œ์žฌ ์•„์ด๋”” ๋ชฉ๋ก์€ ๋ช‡๊ฐ€์ง€ ๊ฒฝ์šฐ์˜ ์ˆ˜๊ฐ€ ๊ฐ€๋Šฅํ•œ ์ง€ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

 

Solution for Question 03

์ด ๋ฌธ์ œ ๋˜ํ•œ ๋ช‡ ๊ฐ€์ง€ ํ•จ์ •์ด ๋งŽ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ™์€ ํŒจํ„ด์ด ์ฃผ์–ด์งˆ ์ˆ˜๋„ ์žˆ๋Š”๋ฐ, ์—ฌ๊ธฐ์„œ ์ค‘์š”ํ•œ ๊ฒƒ์€ ์ค‘๋ณต๋˜์–ด ์žˆ๋Š” ํŒจํ„ด์— ๋”ฐ๋ผ ์ค‘๋ณต๋œ ์•„์ด๋””๊ฐ€ ์ฃผ์–ด์ง€๋ฉด ์•ˆ ๋œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

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

Java์—์„œ๋Š” matches์™€ replace ๋ฉ”์†Œ๋“œ๋ฅผ ์ด์šฉํ•ด ์ •๊ทœ์‹์œผ๋กœ ์›ํ•˜๋Š” ํŒจํ„ด์— ๋งค์นญ๋˜๋Š” ๋ฌธ์ž์—ด์„ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฐฉ๋ฒ•์„ ์‘์šฉํ•˜๋ฉด์„œ ์žฌ๊ท€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ, ์ €๋Š” ์—ฌ๊ธฐ์— ๋น„ํŠธ ์—ฐ์‚ฐ์„ ๋”ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๊ทธ ์ด์œ ๋Š” ๊ฐ๊ฐ์˜ ์•„์ด๋””๊ฐ€ ์ค‘๋ณต์ด ๋  ์ˆ˜๋Š” ์—†์–ด๋„, ํŒจํ„ด์€ ์ค‘๋ณต์ด ๋˜์–ด, ๋‘ ์•„์ด๋””๊ฐ€ ๋“ค์–ด๊ฐˆ ์ˆ˜๋„ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ Index์— 2์˜ ๋ฐฐ์ˆ˜๊ผด๋กœ ์ทจํ•ด์ง€๋Š” ๋น„ํŠธ ์—ฐ์‚ฐ์„ ํ†ตํ•˜์—ฌ ๊ฐ๊ฐ์˜ ID๋ฅผ ๋”ํ•œ๋‹ค๋ฉด ์„œ๋กœ๊ฐ€ ๋‹ค๋ฅธ ์ง‘ํ•ฉ์œผ๋กœ ๋ถ„๋ฅ˜ ๊ณ„์‚ฐ๋œ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

Question 04. ํ˜ธํ…” ๋ฐฉ ๋ฐฐ์ •

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

์Šค๋…ธ์šฐํƒ€์šด์—์„œ ํ˜ธํ…”์„ ์šด์˜ํ•˜๊ณ  ์žˆ๋Š” ์Šค์นดํ”ผ๋Š” ํ˜ธํ…”์— ํˆฌ์ˆ™ํ•˜๋ ค๋Š” ๊ณ ๊ฐ๋“ค์—๊ฒŒ ๋ฐฉ์„ ๋ฐฐ์ •ํ•˜๋ ค ํ•ฉ๋‹ˆ๋‹ค. ํ˜ธํ…”์—๋Š” ๋ฐฉ์ด ์ด k๊ฐœ ์žˆ์œผ๋ฉฐ, ๊ฐ๊ฐ์˜ ๋ฐฉ์€ 1๋ฒˆ๋ถ€ํ„ฐ k๋ฒˆ๊นŒ์ง€ ๋ฒˆํ˜ธ๋กœ ๊ตฌ๋ถ„ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒ˜์Œ์—๋Š” ๋ชจ๋“  ๋ฐฉ์ด ๋น„์–ด ์žˆ์œผ๋ฉฐ ์Šค์นดํ”ผ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ทœ์น™์— ๋”ฐ๋ผ ๊ณ ๊ฐ์—๊ฒŒ ๋ฐฉ์„ ๋ฐฐ์ •ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

  1. ํ•œ ๋ฒˆ์— ํ•œ ๋ช…์”ฉ ์‹ ์ฒญํ•œ ์ˆœ์„œ๋Œ€๋กœ ๋ฐฉ์„ ๋ฐฐ์ •ํ•ฉ๋‹ˆ๋‹ค.
  2. ๊ณ ๊ฐ์€ ํˆฌ์ˆ™ํ•˜๊ธฐ ์›ํ•˜๋Š” ๋ฐฉ ๋ฒˆํ˜ธ๋ฅผ ์ œ์ถœํ•ฉ๋‹ˆ๋‹ค.
  3. ๊ณ ๊ฐ์ด ์›ํ•˜๋Š” ๋ฐฉ์ด ๋น„์–ด ์žˆ๋‹ค๋ฉด ์ฆ‰์‹œ ๋ฐฐ์ •ํ•ฉ๋‹ˆ๋‹ค.
  4. ๊ณ ๊ฐ์ด ์›ํ•˜๋Š” ๋ฐฉ์ด ์ด๋ฏธ ๋ฐฐ์ •๋˜์–ด ์žˆ์œผ๋ฉด ์›ํ•˜๋Š” ๋ฐฉ๋ณด๋‹ค ๋ฒˆํ˜ธ๊ฐ€ ํฌ๋ฉด์„œ ๋น„์–ด์žˆ๋Š” ๋ฐฉ ์ค‘ ๊ฐ€์žฅ ๋ฒˆํ˜ธ๊ฐ€ ์ž‘์€ ๋ฐฉ์„ ๋ฐฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

์ „์ฒด ๋ฐฉ ๊ฐœ์ˆ˜ k์™€ ๊ณ ๊ฐ๋“ค์ด ์›ํ•˜๋Š” ๋ฐฉ ๋ฒˆํ˜ธ๊ฐ€ ์ˆœ์„œ๋Œ€๋กœ ๋“ค์–ด์žˆ๋Š” ๋ฐฐ์—ด room_number๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, ๊ฐ ๊ณ ๊ฐ์—๊ฒŒ ๋ฐฐ์ •๋˜๋Š” ๋ฐฉ ๋ฒˆํ˜ธ๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ๋ฐฐ์—ด์— ๋‹ด์•„ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

 

Solution for Question 04

4๋ฒˆ ๋ฌธ์ œ๋ถ€ํ„ฐ๋Š” ํšจ์œจ์„ฑ ํ…Œ์ŠคํŠธ๋ฅผ ๊ฒธํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋‚˜์˜ค๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด ๋•Œ๋ถ€ํ„ฐ ์‰ฝ๊ฒŒ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ตฌํ˜„ํ•ด์„œ ์ œ์ถœํ•˜๋ฉด ๋‚ญํŒจ๋ฅผ ๋ณด๊ฒŒ ๋˜์ง€์š”. ๊ทธ๋ž˜์„œ ์ฒ˜์Œ์— ์ œ์ถœํ–ˆ์„ ๋• ์•„๋ž˜์˜ ์ฝ”๋“œ๋กœ ๊ตฌํ˜„ํ•ด์„œ ์ œ์ถœํ•˜์˜€์Šต๋‹ˆ๋‹ค.

๋ฐฉ ๋ฆฌ์ŠคํŠธ๋ฅผ Map์œผ๋กœ ๋งŒ๋“ค๊ณ , ํ•ด๋‹น ๋ฐฉ์ด ์˜ˆ์•ฝ๋˜์–ด ์žˆ๋Š”์ง€๋ฅผ Bool ๊ฐ’์„ ํ†ตํ•ด์„œ ํ™•์ธํ•˜๋Š” ํ˜•์‹์œผ๋กœ ๋งŒ๋“ค์–ด์„œ, ๋ฐฐ์ •๋œ ๋ฐฉ์ผ ๊ฒฝ์šฐ์—๋Š” Java 8์˜ Stream์„ ์‚ฌ์šฉํ•˜์—ฌ ํ›„๋ณด ๋ฐฉ ๋ฆฌ์ŠคํŠธ ์ค‘ ๊ฐ€์žฅ ์ž‘์€ ๋ฐฉ์„ ๊ฒฐ์ •ํ•˜๋Š” ์‹์œผ๋กœ ํ•œ๋‹ค๋ฉด ์‰ฝ๊ฒŒ ๊ตฌํ•  ์ˆ˜ ์žˆ์„ ๊ฑฐ๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์—ญ์‹œ ํšจ์œจ์„ฑ ํ…Œ์ŠคํŠธ ์ „๋ถ€ ํ†ต๊ณผ๋ฅผ ํ•˜์ง€ ๋ชปํ•˜์˜€๊ณ , ์—ฌ๋Ÿฌ ๋ฐฉ๋ฉด์œผ๋กœ ๊ณ ๋ฏผํ•œ ๋์— Map์ด ์—ญ์‹œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋งŽ์ด ๋จน๋Š”๋‹ค๊ณ  ์ƒ๊ฐํ•˜์—ฌ ๋‘ ๋ฒˆ์งธ ๋ฐฉ๋ฒ•์œผ๋กœ ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌ๋ถ„ํ•˜๋ฉด ์กฐ๊ธˆ ๋‚˜์•„์งˆ ๊ฒƒ์ด๋‹ค๋Š” ์ƒ๊ฐ์„ ํ•˜์˜€์ง€๋งŒ ์ด ์—ญ์‹œ, ํšจ์œจ์„ฑ ํ…Œ์ŠคํŠธ 1~2๊ฐœ๋งŒ ํ†ต๊ณผํ•˜๊ณ , ์‰ฝ์‚ฌ๋ฆฌ ํ†ต๊ณผ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ ํ•ด์„ค์„ ๋ณด๊ฒŒ ๋˜์—ˆ๊ณ , ํ•ด์„ค์—์„œ๋Š” ๋‚จ์•„์žˆ๋Š” ๋ฐฉ์„ ์ „๋ถ€ ํƒ์ƒ‰ํ•  ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ์˜ˆ์•ฝ๋œ ๋ฐฉ์„ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€ ๋ฐฉ์„ ๊ฐ ๋ฐฉ ๋ฒˆํ˜ธ์— ๋‚จ๊ฒจ์ฃผ๊ณ , ๊ทธ ๋ฐฉ๋ถ€ํ„ฐ ํƒ์ƒ‰ํ•˜๊ฒŒ ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ถŒํ•˜์˜€์Šต๋‹ˆ๋‹ค.

๋ฐฉ์„ ์ „๋ถ€ ํƒ์ƒ‰ํ•˜๊ฒŒ ๋˜๋ฉด, ๊ณ ๊ฐ์ด ์›ํ•˜๋Š” ๋ฐฉ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ์ด๋ฏธ ์˜ˆ์•ฝ๋œ ๋ฐฉ์„ ์ „๋ถ€๋ฅผ ๋‹ค์‹œ ์กฐํšŒํ•˜๊ฒŒ ๋˜๋Š” ๋ถˆ์ƒ์‚ฌ๊ฐ€ ์ผ์–ด๋‚˜๋Š” ๊ฒƒ์„ ์ƒ๊ฐํ•˜์—ฌ์•ผ ํ•œ๋‹ค๋Š” ๊นŠ์€ ๊ตํ›ˆ์„ ๊นจ๋‹ซ๊ฒŒ ํ•ด์ค€ ๋ฌธ์ œ์˜€์Šต๋‹ˆ๋‹ค. 

 

 

Question 05. ์ง•๊ฒ€๋‹ค๋ฆฌ ๊ฑด๋„ˆ๊ธฐ

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

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

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

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

๋””๋”ค๋Œ์— ์ ํžŒ ์ˆซ์ž๊ฐ€ ์ˆœ์„œ๋Œ€๋กœ ๋‹ด๊ธด ๋ฐฐ์—ด stones์™€ ํ•œ ๋ฒˆ์— ๊ฑด๋„ˆ๋›ธ ์ˆ˜ ์žˆ๋Š” ๋””๋”ค๋Œ์˜ ์ตœ๋Œ€ ์นธ์ˆ˜ k๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, ์ตœ๋Œ€ ๋ช‡ ๋ช…๊นŒ์ง€ ์ง•๊ฒ€๋‹ค๋ฆฌ๋ฅผ ๊ฑด๋„ ์ˆ˜ ์žˆ๋Š”์ง€ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

 

Solution for Question 05

5๋ฒˆ ๋ฌธ์ œ ์—ญ์‹œ, ํšจ์œจ์„ฑ ํ…Œ์ŠคํŠธ๋ฅผ ๊ฐ™์ด ๋ณด๊ธฐ ๋•Œ๋ฌธ์— ์ผ๋ฐ˜์ ์ธ ๋ฐฉ๋ฒ•์œผ๋กœ ๋ฌธ์ œ๋ฅผ ์ ‘๊ทผํ•˜๊ธฐ์—” ํ’€๊ธฐ ์–ด๋ ค์šด ๋ฌธ์ œ์˜€์Šต๋‹ˆ๋‹ค.

๊ฐ€์žฅ ์‰ฌ์šด ๋ฐฉ๋ฒ•์€ k๋ฅผ Life๋กœ ๋†“๊ณ , ๊ทธ๋“ค์˜ ๊ฐ’ ์ค‘ 0์„ ๋งŒ๋‚˜๊ฒŒ ๋˜๋ฉด, Life๋ฅผ ๊ฐ์†Œํ•˜๋Š” ํ˜•์‹์œผ๋กœ ์ ‘๊ทผํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๊ณ  ๋ชจ๋“  ๋Œ์„ ํ†ต๊ณผํ–ˆ๋‹ค๋ฉด, ์Šน๋ฆฌ ์ˆ˜๋ฅผ ์˜ฌ๋ฆฌ๋ฉด ๊ฑด๋„ˆ๋Š” ์‚ฌ๋žŒ์˜ ์ด ํ•ฉ์ด ๋‚˜์˜ค๊ฒŒ ๋˜๊ฒ ์ฃ .

๊ทธ๋Ÿฌ๋‚˜ ์ด ๋ฐฉ๋ฒ•์€ O(n^2)์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ฐ€์ง€๊ธฐ ๋–„๋ฌธ์— 200,000๊ฐœ ๋ฐฐ์—ด ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ์—๋Š” ์—ญ๋ถ€์กฑ์ด์—ˆ์Šต๋‹ˆ๋‹ค ใ… ใ… .

๊ทธ๋ ‡๋‹ค๋ฉด ์–ด์ฐจํ”ผ k์˜ ๊ฐฏ์ˆ˜๋งŒํผ 0์ด ๋˜์–ด, ๋ชป๊ฑด๋„ˆ๊ฐ€๊ฒŒ ๋  ๊ฒฝ์šฐ๊ฐ€ ๊ฐ€์žฅ ๋จผ์ € ํŒจ๋ฐฐ๋  ๊ฐ€๋Šฅ์„ฑ์ด ํฌ๋ฏ€๋กœ, ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ์ „๋ถ€ ํƒ์ƒ‰ํ•˜์ง€ ๋ง๊ณ , k์˜ ๊ตฌ๊ฐ„๋งŒํผ ๊ณ„์‚ฐํ•˜์—ฌ ๊ทธ๋“ค ์ค‘ ๊ฐ€์žฅ ์ž‘์€ ๋Œ์˜ ์ˆซ์ž๋ฅผ ๊ตฌํ•˜๋ฉด ์ตœ์†Œํ•œ์˜ ๋„˜์–ด๊ฐˆ ์ˆ˜ ์žˆ๋Š” ์‚ฌ๋žŒ์ด ๋‚˜์˜ฌ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

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

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

์ถœ์ฒ˜: https://tech.kakao.com/2020/04/01/2019-internship-test/

 

๋ฐ˜์‘ํ˜•
TAGS.

Tistory Comments