Algorithm ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ

ํ•ด๋‹น ๊ธ€ 89๊ฑด

https://school.programmers.co.kr/learn/courses/30/lessons/42898 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr 1. ๋ฌธ์ œ mxn ํฌ๊ธฐ map์—์„œ ๋ฌผ์›…๋ฉ์ด๋ฅผ ์ œ์™ธํ•œ ์ขŒํ‘œ๋ฅผ ์ง€๋‚˜ 1,1์—์„œ m,n๊นŒ์ง€ ๊ฐˆ ์ˆ˜ ์žˆ๋Š” ์ตœ๋‹จ๊ฒฝ๋กœ์˜ ๊ฐœ์ˆ˜๋ฅผ 1,000,000,007๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋ฅผ ๊ตฌํ•œ๋‹ค. 2. ํ’€์ด ์™„์ „ํƒ์ƒ‰์œผ๋กœ ์ ‘๊ทผํ•ด์„œ ํ’€์—ˆ๋Š”๋ฐ ์‹คํŒจ+์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋‚˜์˜จ๋‹ค. dp๋กœ ํ’€์–ด์•ผํ•  ๋“ฏ ํ•˜๋‹ค. ๋‹ค์ต์ŠคํŠธ๋ผ์ฒ˜๋Ÿผ ํ’€์–ด๋ณด์ž. 3. ์ฝ”๋“œ ์™„ํƒ ์‹คํŒจ ์ฝ”๋“œ ๋”๋ณด๊ธฐ class Solution { static long min = Integer.MA..

Algorithm/Programmers 2023. 8. 24. 07:29

https://school.programmers.co.kr/learn/courses/30/lessons/12927 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr 1. ๋ฌธ์ œ ์•ผ๊ทผ ํ”ผ๋กœ๋„๋ฅผ ์ตœ์†Œํ™”ํ•˜๋ฉด ๋œ๋‹ค. ์•ผ๊ทผ ํ”ผ๋กœ๋„๋Š” ์ผ์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ๋‚จ์€ ์ผ์˜ ์–‘ ์›์†Œ๋“ค์„ ๊ฐ๊ฐ ์ œ๊ณฑํ•ด์„œ ๋”ํ•œ ๊ฐ’์ด๋‹ค. works ๋ฐฐ์—ด์— ์ผ์˜ ์–‘์ด ์ฃผ์–ด์ง€๊ณ  1์‹œ๊ฐ„์— 1๋งŒํผ์˜ ์ผ์„ ํ•œ๋‹ค๊ณ  ํ•  ๋•Œ, N์‹œ๊ฐ„ ๋™์•ˆ ์ผ์„ ์ฒ˜๋ฆฌํ–ˆ์„ ๋•Œ ์•ผ๊ทผ ํ”ผ๋กœ๋„์˜ ์ตœ์†Ÿ๊ฐ’์„ ์ถœ๋ ฅํ•œ๋‹ค. 2. ํ’€์ด ์ฒ˜์Œ์—” ์ˆ˜ํ•™์œผ๋กœ ์ ‘๊ทผํ•˜์˜€์œผ๋‚˜, ์ด๋ ‡๊ฒŒ ๋˜๋ฉด '์ตœ์†Œํ•œ'์˜ ์•ผ๊ทผ ํ”ผ๋กœ๋„๋ฅผ ๊ตฌํ•  ์ˆ˜ ์—†๋‹ค. ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์›์†Œ๋ฅผ ๋ชจ๋‘ ์ •๋ ฌํ•˜์—ฌ ๊ฑฐ๊ธฐ..

Algorithm/Programmers 2023. 8. 22. 20:23

https://school.programmers.co.kr/learn/courses/30/lessons/12938 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr 1. ๋ฌธ์ œ ํ•ฉ๊ณผ ๋ถ€๋ถ„์ง‘ํ•ฉ ๊ฐœ์ˆ˜๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ, ์ตœ๊ณ ์˜ ์ง‘ํ•ฉ์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ์ตœ๊ณ ์˜ ์ง‘ํ•ฉ ์กฐ๊ฑด์€ ์›์†Œ๋“ค์˜ ๊ณฑ์ด ์ตœ๋Œ€๊ฐ€ ๋  ๋•Œ์ด๋‹ค. 2. ํ’€์ด ์ฒ˜์Œ์—” ๋ฐ”๋กœ ๋ถ€๋ถ„์ง‘ํ•ฉ or ์กฐํ•ฉ์ด๊ฒ ๊ฑฐ๋‹ˆ ํ•˜๊ณ  ์ ‘๊ทผํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ ํ’€์ด๊ฐ€ ๋ณต์žกํ–ˆ๊ณ  ๋‹ค๋ฅธ ์ ‘๊ทผ ๋ฐฉ๋ฒ•์ด ์žˆ์„ ๊ฒƒ ๊ฐ™์•„ ๋ธ”๋กœ๊ทธ๋ฅผ ์ฐธ๊ณ ํ–ˆ๋Š”๋ฐ ์ˆ˜ํ•™์œผ๋กœ ํ‘ผ ํ’€์ด๊ฐ€ ๋งŽ์•˜๋‹ค. ์ฐธ๊ณ ํ•ด์„œ ๋‚˜๋„ ์ˆ˜ํ•™์œผ๋กœ ํ’€์–ด๋ณด์•˜๋‹ค. 1. ์šฐ์„  ๊ฐœ์ˆ˜๊ฐ€ ํ•ฉ๋ณด๋‹ค ํฌ๋ฉด 1๋ผ๋ฆฌ์˜ ํ•ฉ ๋ณด๋‹ค๋„ ํฌ๊ฒŒ ๋˜๋ฏ€๋กœ -1์„ ..

Algorithm/Programmers 2023. 8. 20. 08:09

https://school.programmers.co.kr/learn/courses/30/lessons/43105 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr 1. ๋ฌธ์ œ ์ฃผ์–ด์ง„ ์‚ผ๊ฐํ˜•์—์„œ ํ•ฉ์ด ๊ฐ€์žฅ ํด ๋•Œ์˜ ํ•ฉ์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค. 2. ํ’€์ด 1์ฐจ : ๊ฐ๊ฐ์˜ ์œ„์น˜ ๋งˆ๋‹ค ์œ„, ์™ผ์ชฝ ์œ„๋ฅผ ๊ฒ€์‚ฌํ•˜๋Š” ๋ฐฉ์‹ 2์ฐจ : ๋งจ ์™ผ์ชฝ ์ค„, ๋งจ ์˜ค๋ฅธ์ชฝ ์ค„, ๊ฐ€์šด๋ฐ๋กœ ๋‚˜๋ˆ„์–ด ๋งจ ์™ผ์ชฝ ์ค„์€ ์œ— ๋…€์„๋งŒ ๊ฒ€์‚ฌ ๋งจ ์˜ค๋ฅธ์ชฝ ์ค„์€ ์™ผ์ชฝ ์œ— ๋…€์„๋งŒ ๊ฒ€์‚ฌ ๊ฐ€์šด๋ฐ๋Š” ์œ— ๋…€์„, ์™ผ์ชฝ ์œ— ๋…€์„ ๋‘˜ ๋‹ค ๊ฒ€์‚ฌํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. 1์ฐจ ๋ณด๋‹ค๋Š” 2์ฐจ์˜ ์ฝ”๋“œ ๊ฐ€๋…์„ฑ์ด ๋” ์ข‹์•˜๋‹ค. 3. ์ฝ”๋“œ 1์ฐจ -> ์ด์ค‘for๋ฌธ ๋”..

Algorithm/Programmers 2023. 8. 19. 08:58

์šฐ์„ ์ˆœ์œ„ ํ(Priority Queue)๋Š” ์™„์ „์ด์ง„ํŠธ๋ฆฌ์ธ ํž™(Heap)์œผ๋กœ ๊ตฌํ˜„๋˜์–ด ์žˆ๋‹ค. ์šฐ์„ ์ˆœ์œ„ ํ(Priority Queue) ํ(Queue)๋Š” FIFO(First in - First out)๊ตฌ์กฐ๋กœ ๋จผ์ € ๋“ค์–ด์˜จ ๋ฐ์ดํ„ฐ๊ฐ€ ๋จผ์ € ๋‚˜๊ฐ€๋Š” ๊ตฌ์กฐ์ด๋‹ค. ์šฐ์„ ์ˆœ์œ„ ํ(Priority Queue)๋Š” ๋“ค์–ด์˜จ ์ˆœ์„œ์™€๋Š” ๋ฌด๊ด€ํ•˜๊ฒŒ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’์€ ๋ฐ์ดํ„ฐ๊ฐ€ ๋จผ์ € ๋‚˜๊ฐ€๋Š” ๊ตฌ์กฐ์ด๋‹ค. ๋ฐ์ดํ„ฐ๊ฐ€ ๋“ค์–ด์˜ค๋ฉด ์šฐ์„ ์ˆœ์œ„์— ๋”ฐ๋ผ ์ž๋™์œผ๋กœ ์ •๋ ฌํ•œ๋‹ค. ๋•Œ๋ฌธ์— ์šฐ์„ ์ˆœ์œ„ ํ๋Š” ์šฐ์„ ์ˆœ์œ„์— ๋”ฐ๋ผ ์ •๋ ฌํ•˜๋Š”๋ฐ ํšจ์œจ์ ์ธ ํž™(Heap)์„ ์ด์šฉํ•˜์—ฌ ๊ตฌํ˜„ํ•œ๋‹ค. - ํž™์ด ์•„๋‹Œ ๋ฐฐ์—ด๋กœ ๊ตฌํ˜„ํ–ˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์ž. ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฝ์ž…ํ•˜๋ฉด ์šฐ์„ ์ˆœ์œ„์— ๋”ฐ๋ผ ์ •๋ ฌํ•˜๊ธฐ ์œ„ํ•ด ๋ชจ๋“  ์ธ๋ฑ์Šค๋ฅผ ํƒ์ƒ‰ํ•ด์•ผ ํ•œ๋‹ค. ์—ฌ๊ธฐ์„œ ์‹œ๊ฐ„๋ณต์žก๋„๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ n๊ฐœ ์ผ ๋•Œ O(n)์ด ๋œ๋‹ค. ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€..

https://school.programmers.co.kr/learn/courses/30/lessons/42628 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr 1. ๋ฌธ์ œ ๊ฐ ๋ช…๋ น์–ด์— ๋”ฐ๋ผ ์ด์ค‘์šฐ์„ ์ˆœ์œ„ํ์˜ ์—ฐ์‚ฐ์ด ์ฒ˜๋ฆฌ๋œ๋‹ค. I ์ˆซ์ž => ํ์— ์ˆซ์ž ์‚ฝ์ž… D 1 => ํ์—์„œ ์ตœ๋Œ“๊ฐ’ ์‚ญ์ œ D -1 => ํ์—์„œ ์ตœ์†Ÿ๊ฐ’ ์‚ญ์ œ ์ตœ๋Œ“๊ฐ’, ์ตœ์†Ÿ๊ฐ’์„ return ํ•˜๋˜, ํ๊ฐ€ ๋น„์–ด์žˆ์„ ๊ฒฝ์šฐ [0,0] ์„ returnํ•œ๋‹ค. 2. ํ’€์ด ์šฐ์„ ์ˆœ์œ„ํ 2๊ฐœ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ํ•˜๋‚˜๋Š” ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๋Š” ํ์ธ ์ตœ์†Œํž™, ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๋Š” ํ์ธ ์ตœ๋Œ€ํž™ ์œผ๋กœ ํ™œ์šฉํ•œ๋‹ค. ์—ฌ๊ธฐ์„œ..

Algorithm/Programmers 2023. 8. 17. 23:25

https://school.programmers.co.kr/learn/courses/30/lessons/12980 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr 1. ๋ฌธ์ œ ๋ชฉํ‘œ์ง€์  N์ด ์ฃผ์–ด์ง„๋‹ค. N๊นŒ์ง€ ๊ฐ€๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๋ฐฐํ„ฐ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์ด ์ตœ์†Œ๊ฐ€ ๋  ๋•Œ์˜ ์‚ฌ์šฉ๋Ÿ‰์„ ์ถœ๋ ฅํ•œ๋‹ค. ์ ํ”„ - ์˜จ ๋งŒํผ ๊ฑฐ๋ฆฌ + 1 -> ๋ฐฐํ„ฐ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰ + 1 ์ˆœ๊ฐ„์ด๋™ - ์˜จ ๋งŒํผ ๊ฑฐ๋ฆฌ * 2 -> ๋ฐฐํ„ฐ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰ ๊ทธ๋Œ€๋กœ N์€ ์ตœ๋Œ€ 10์–ต์ด๋‹ค. 2. ํ’€์ด ์ฒ˜์Œ์—๋Š” DFS๋กœ ์ ‘๊ทผํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ N์€ ์ตœ๋Œ€ 10์–ต์ด์—ˆ๊ณ , N์ด 5000์ผ ๋•Œ๋„ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋‚ฌ๋‹ค. ๋‹จ๋‹จํžˆ ์˜คํ•ด๋ฅผ ํ–ˆ๋˜ ์ ‘๊ทผ์ด์—ˆ๋‹ค. ..

Algorithm/Programmers 2023. 8. 11. 06:41