[Java] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ์ง•๊ฒ€๋‹ค๋ฆฌ ๊ฑด๋„ˆ๊ธฐ

[๋ฌธ์ œ] https://school.programmers.co.kr/learn/courses/30/lessons/64062 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr [ํ’€์ด] ๋‹จ์ˆœํžˆ ์นœ๊ตฌ๋ฅผ ํ•œ๋ช…์”ฉ ์ง•๊ฒ€๋‹ค๋ฆฌ๋ฅผ ๊ฑด๋„ˆ๋Š” ๋ฐฉ์‹์œผ๋กœ ํ’€์ด๋ฅผ ์ง„ํ–‰ํ•ด๋ณด๋‹ˆ, ์ •ํ™•์„ฑ์€ ํ†ต๊ณผํ•˜์˜€์ง€๋งŒ ํšจ์œจ์„ฑ์—์„œ ๊ฑธ๋ ธ์Šต๋‹ˆ๋‹ค. ์‹œ๊ฐ„์„ ๋‹จ์ถ•์‹œ์ผœ ๋ณด๊ธฐ ์œ„ํ•ด ์ตœ์†Œ๊ฐ’ min์„ ๊ตฌํ•ด, 1์นธ์”ฉ ์ด๋™ํ•  ์ˆ˜ ์žˆ๋Š” ์นœ๊ตฌ๋“ค์„ ๊ฑด๋„Œํ›„, ๋‚˜๋จธ์ง€๋ฅผ ๊ฑด๋„ˆ๊ฒŒ ํ•ด๋ณด์•˜์ง€๋งŒ ์—ญ์‹œ๋‚˜ ํšจ์œจ์„ฑ์—์„œ ํ†ต๊ณผํ•˜์ง€ ๋ชปํ•ด ํ’€์ด๋ฅผ ์ฐธ๊ณ ํ•˜์˜€์Šต๋‹ˆ๋‹ค. https://tech.kakao.com/2020/04/01/2019-internship-tes..

Algorithm/Programmers 2022. 7. 13. 16:57
[Java] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ๋ถˆ๋Ÿ‰ ์‚ฌ์šฉ์ž

[๋ฌธ์ œ] https://school.programmers.co.kr/learn/courses/30/lessons/64064 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr [ํ’€์ด] ์šฐ์„  banned_id[]๋ฅผ ํƒ์ƒ‰ํ•˜๋ฉฐ ๊ฐ banned_id์— ๋Œ€์‘๋  ์ˆ˜ ์žˆ๋Š” user_id๋“ค์˜ index๊ฐ’์„ bandList.get(index)์— ์ €์žฅํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ด๋•Œ, ban์ด ๊ฐ€๋Šฅํ•œ ์ด๋ฆ„์ธ์ง€ boolean banned(String ban, String name)์„ ํ†ตํ•ด *๊ฐ€ ์•„๋‹Œ ๋ฌธ์ž๋“ค์„ ๋น„๊ตํ•˜๋ฉฐ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์ž…์ถœ๋ ฅ ์˜ˆ1์„ ์˜ˆ์‹œ๋กœ ์‚ดํŽด๋ณด๋ฉด, ์•„๋ž˜์™€ ๊ฐ™์ด banList๊ฐ€ ์ดˆ๊ธฐํ™”..

Algorithm/Programmers 2022. 7. 12. 18:25
[Java] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ํŠœํ”Œ

[๋ฌธ์ œ] https://school.programmers.co.kr/learn/courses/30/lessons/64065?language=java ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr [ํ’€์ด] String ํ˜•์‹์œผ๋กœ ์ž…๋ ฅ๋˜๋Š” ์ง‘ํ•ฉ์˜ ๋ฌถ์Œ s๋ฅผ ๋ฌธ์ž์—ด ํ•จ์ˆ˜๋“ค๋กœ ์ชผ๊ฐœ์–ด ๊ฐ ์ง‘ํ•ฉ์„ ArrayList์— ๋‹ด๊ณ  ๋‚˜์„œ ์ด๋ฅผ ํฌ๊ธฐ ์ˆœ์œผ๋กœ ์ €์žฅ ํ•˜๊ธฐ ์œ„ํ•ด ๊ณ ๋ฏผํ•ด๋ณธ ๊ฒฐ๊ณผ, Comparable์„ ์ƒ์†๋ฐ›์€ Class๋ฅผ ์ด์šฉํ•ด ์šฐ์„ ์ˆœ์œ„ ํ๋ฅผ ์ด์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค. Tuple ํด๋ž˜์Šค Tuple ํด๋ž˜์Šค๋ฅผ ์„ ์–ธํ•˜์—ฌ ์ง‘ํ•ฉ์„ ์ €์žฅํ•  set๊ณผ ์ง‘ํ•ฉ์˜ ํฌ๊ธฐ size๋ฅผ ์„ ์–ธํ•ด์ค๋‹ˆ๋‹ค. com..

Algorithm/Programmers 2022. 7. 12. 17:39
[Java] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ํฌ๋ ˆ์ธ ์ธํ˜•๋ฝ‘๊ธฐ ๊ฒŒ์ž„

[๋ฌธ์ œ] https://school.programmers.co.kr/learn/courses/30/lessons/64061?language=java ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr [ํ’€์ด] ์Šคํƒ์„ ์ด์šฉํ•˜์—ฌ ํ’€์ด๋ฅผ ์ง„ํ–‰ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๋งŒ์•ฝ board์˜ ํฌ๊ธฐ๊ฐ€ N ์ด๋ผ๋ฉด, N + 1 ํฌ๊ธฐ์˜ ์Šคํƒ๋ฐฐ์—ด Stack์„ ์„ ์–ธํ•ฉ๋‹ˆ๋‹ค. 1~N๊นŒ์ง€ ์ธํ˜•๋ฝ‘๊ธฐ ๊ธฐ๊ณ„ ๋ชจ์–‘์„ stack[1] ~ stack[N] ์— ์ €์žฅํ•˜๊ณ , ๋ฝ‘ํžŒ ์ธํ˜•๋“ค์„ ๋‹ด๋Š” ์ž„์‹œ stack์€ stack[0]์„ ์ด์šฉํ•ฉ๋‹ˆ๋‹ค. ์Šคํƒ์€ FIFO์˜ ํŠน์„ฑ์„ ์ง€๋‹ˆ๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— for๋ฌธ์„ ํ†ตํ•ด ์Šคํƒ์— board..

Algorithm/Programmers 2022. 7. 11. 16:25
[Java] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ์บ์‹œ

[๋ฌธ์ œ] https://school.programmers.co.kr/learn/courses/30/lessons/17680?language=java ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr [ํ’€์ด] ์šฐ์„  ๋ฌธ์ œ๋ฅผ ํ’€๊ธฐ ์œ„ํ•ด์„œ LRU ๊ต์ฒด ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋Œ€ํ•ด์„œ ์•Œ์•„์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. LRU๋Š” Least Recently Used์˜ ์•ฝ์ž๋กœ, ์ฆ‰ ๊ฐ€์žฅ ์˜ค๋žซ๋™์•ˆ ์ฐธ์กฐ๋˜์ง€ ์•Š์€ ์บ์‹œ๋ฅผ ๊ต์ฒดํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ๋งŒ์•ฝ ์บ์‹œ์˜ ์—ฌ์œ  ์ €์žฅ๊ณต๊ฐ„์ด ์—†๊ณ , ์บ์‹œ์— ํ•ด๋‹น ๊ฐ’์ด ์—†๋‹ค๋ฉด ๊ฐ€์žฅ ์˜ค๋žซ๋™์•ˆ ์‚ฌ์šฉ๋˜์ง€ ์•Š์•˜๋˜ ์บ์‹œ๋ฅผ ๊ต์ฒดํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์บ์‹œ๊ฐ€ ์ฐธ์กฐ๋œ ์‹œ๊ฐ„๋ณ„๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ..

Algorithm/Programmers 2022. 7. 7. 21:04
[Java] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ๋™๊ตด ํƒํ—˜

[๋ฌธ์ œ] https://school.programmers.co.kr/learn/courses/30/lessons/67260 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr [ํ’€์ด] ํ’€์ด์˜ ํ•ต์‹ฌ์€, ํ•œ๋ฒˆ ์ง€๋‚˜์˜จ ๋…ธ๋“œ๋ผ๋ฉด ์ดํ›„ ์„ ์ˆ˜๋กœ ๋‚˜์™€์•ผํ•˜๋Š” ์ˆซ์ž๋ฅผ ํ†ตํ•ด ์ž ๊น€ ํ•ด์ œ๊ฐ€ ๋œ๋‹ค๋ฉด ๋ฐฉ๋ฌธํ•  ์ˆ˜ ์žˆ๊ฒŒ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ bfs()๋ฅผ ํ†ตํ•ด ๊ทธ๋ž˜ํ”„๋ฅผ ํƒ์ƒ‰ํ•˜๋ฉฐ, visit[][]๋ฅผ ํ†ตํ•ด ์ง€๋‚˜์˜จ ๋…ธ๋“œ๋“ค์˜ ๋ฐฉ๋ฌธ์„ ์ฒดํฌํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ, ์„ ์ˆ˜์กฐ๊ฑด์ด ์—†๊ฑฐ๋‚˜ ์„ ์ˆ˜์กฐ๊ฑด์„ ํ†ตํ•ด ์ž ๊ธˆ์ด ํ•ด์ œ๋˜์—ˆ๋‹ค๋ฉด ํ•ด๋‹น ๋…ธ๋“œ๋ฅผ ํ์— ๋„ฃ์œผ๋ฉฐ ๊ฐ€๋Šฅํ•œ ๋…ธ๋“œ๋“ค์„ ๋ชจ๋‘ ๋ฐฉ๋ฌธํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ, ํ์— ๋“ค์–ด๊ฐ”๋˜ ๋…ธ๋“œ๋“ค์€ Array..

Algorithm/Programmers 2022. 7. 7. 20:50
[Java] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ๋ณด์„ ์‡ผํ•‘

[๋ฌธ์ œ] https://programmers.co.kr/learn/courses/30/lessons/67258 ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ๋ณด์„ ์‡ผํ•‘ ["DIA", "RUBY", "RUBY", "DIA", "DIA", "EMERALD", "SAPPHIRE", "DIA"] [3, 7] programmers.co.kr [ํ’€์ด] ํˆฌํฌ์ธํ„ฐ ๋ฐฉ์‹์œผ๋กœ ๋ฐฐ์—ด์„ ํƒ์ƒ‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ํ•ต์‹ฌ์ธ ๋ฌธ์ œ์˜€์Šต๋‹ˆ๋‹ค. ์šฐ์„ , ์ดˆ๊ธฐ์— ํ•„์š”ํ•œ ์ž๋ฃŒ๋ฅผ ์„ธํŒ…ํ•˜์˜€์Šต๋‹ˆ๋‹ค. Set set์œผ๋กœ ๋ณด์„์˜ ๊ฐœ์ˆ˜๋ฅผ ์ €์žฅํ•˜์˜€์Šต๋‹ˆ๋‹ค. gems๋ฅผ ํƒ์ƒ‰ํ•˜์—ฌ Map pick์— ๊ฐ ๋ณด์„์˜ ๊ฐœ์ˆ˜๋ฅผ ์ €์žฅํ•˜๋ฉฐ ๋งจ์•ž์—์„œ ๊ตฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ณด์„์„ธํŠธ๋ฅผ ์ €์žฅํ•ด์„œ ์ดˆ๊ธฐ start์™€ end๋ฅผ ์ €์žฅํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๊ทธ๋‹ค์Œ, ํˆฌํฌ์ธํ„ฐ ๋ฐฉ์‹์œผ๋กœ left๋ฅผ right๋ฅผ ๊ฐฑ์‹ ํ•˜๋ฉฐ gems๋ฐฐ์—ด์˜ ๋๊นŒ์ง€ ์ƒˆ๋กœ์šด ๋ณด..

Algorithm/Programmers 2022. 7. 3. 19:32