level3 8

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์ง•๊ฒ€๋‹ค๋ฆฌ ๊ฑด๋„ˆ๊ธฐ C++ (Lv.3)

https://school.programmers.co.kr/learn/courses/30/lessons/64062?language=cpp ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr ์ด๋ฒˆ ๋ฌธ์ œ๋Š” ์ด๋ถ„ ํƒ์ƒ‰ ๋˜๋Š” ์Šฌ๋ผ์ด๋”ฉ ์œˆ๋„์šฐ ๋ฌธ์ œ์˜€์Šต๋‹ˆ๋‹ค. ๊ธ€์“ด์ด๋Š” ์ด๋ถ„ ํƒ์ƒ‰์œผ๋กœ ํ’€์ดํ–ˆ์Šต๋‹ˆ๋‹ค. ๐Ÿ’ญ ๐Ÿ“ ๋ฌธ์ œ ํ’€์ด 1. stones ๋ฐฐ์—ด ๊ฐ ์›์†Œ๋“ค์˜ ๊ฐ’์€ 1 ์ด์ƒ์ด๋ฏ€๋กœ s๋Š” 1, e๋Š” stones ๋ฐฐ์—ด์˜ ์ตœ๋Œ“๊ฐ’์œผ๋กœ ์ดˆ๊ธฐํ™” 2. s

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ํ’์„  ํ„ฐํŠธ๋ฆฌ๊ธฐ C++ (Lv.3)

https://school.programmers.co.kr/learn/courses/30/lessons/68646?language=cpp ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr ์ด๋ฒˆ ๋ฌธ์ œ๋Š” ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ(DP) ๋˜๋Š” ์Šคํƒ(stack) ๋ฌธ์ œ์˜€์Šต๋‹ˆ๋‹ค. 1. ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ DP ๐Ÿ“ ๋ฌธ์ œ ํ’€์ด 1. ๊ฐ ํ’์„ ์˜ ์™ผ์ชฝ ์ตœ์†Ÿ๊ฐ’(leftMin)๊ณผ ์˜ค๋ฅธ์ชฝ ์ตœ์†Ÿ๊ฐ’(rightMin)์„ ์ €์žฅํ•  ๋ฐฐ์—ด ์„ ์–ธ leftMin[0]์€ a ๋ฒกํ„ฐ์˜ ์ฒซ๋ฒˆ์งธ ๊ฐ’์œผ๋กœ ์ดˆ๊ธฐํ™” rightMin[n-1]์€ a ๋ฒกํ„ฐ์˜ ๋งˆ์ง€๋ง‰ ๊ฐ’์œผ๋กœ ์ดˆ๊ธฐํ™” 2. for ๋ฌธ์„ ๋Œ๋ฉฐ ๊ฐ ํ’์„ ์˜ ์™ผ์ชฝ ์ตœ์†Ÿ..

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋“ฑ๋Œ€ C++ (Lv.3)

https://school.programmers.co.kr/learn/courses/30/lessons/133500 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr ์ด๋ฒˆ ๋ฌธ์ œ๋Š” dfs ๋ฌธ์ œ์˜€์Šต๋‹ˆ๋‹ค. ๐Ÿ“ ๋ฌธ์ œ ํ’€์ด 1. ๋“ฑ๋Œ€์˜ ์—ฐ๊ฒฐ ์ •๋ณด๋ฅผ info ๋ฒกํ„ฐ์— ์ €์žฅ 2. ๋“ฑ๋Œ€ ์‚ฌ์ด์˜ ๋ฑƒ๊ธธ์ด n-1๊ฐœ ์ด๋ฏ€๋กœ ํŠธ๋ฆฌ. 1์„ ๋ฃจํŠธ ๋…ธ๋“œ๋กœ ํ•˜์—ฌ dfs ์ˆ˜ํ–‰ ํ˜„์žฌ ๋…ธ๋“œ์™€ ์—ฐ๊ฒฐ๋œ ๋…ธ๋“œ๊ฐ€ ๋ถ€๋ชจ ๋…ธ๋“œ๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด dfs ์ˆ˜ํ–‰ ๊ฐ ๋…ธ๋“œ์˜ dfs ์ˆ˜ํ–‰์ด ๋๋‚œ ํ›„, ์ž์‹๊ณผ ๋ถ€๋ชจ ๋“ฑ๋Œ€ ๋ชจ๋‘ ๋ถˆ์ด ๊บผ์ ธ ์žˆ๋‹ค๋ฉด ๋ถ€๋ชจ ๋“ฑ๋Œ€ ๋ถˆ ์ผœ์ฃผ๊ธฐ isLightOn[node] = true ๋“ฑ๋Œ€์— ๋ถˆ์„ ์ผœ ์ค„..

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋ถ€๋Œ€๋ณต๊ท€ C++ (Lv.3)

https://school.programmers.co.kr/learn/courses/30/lessons/132266 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr ์ด๋ฒˆ ๋ฌธ์ œ๋Š” bfs ๋ฌธ์ œ์˜€์Šต๋‹ˆ๋‹ค. ๐Ÿ“ ๋ฌธ์ œ ํ’€์ด 1. ๊ธธ ์—ฐ๊ฒฐ ์ •๋ณด๋ฅผ info ๋ฒกํ„ฐ์— ์ €์žฅ 2. sources ๋ฒกํ„ฐ๋ฅผ ์ˆœํšŒํ•˜๋ฉฐ bfs ์ˆ˜ํ–‰ โžก๏ธ sources[i]์—์„œ ๊ฐ•์ฒ  ๋ถ€๋Œ€๊นŒ์ง€์˜ ์ตœ๋‹จ ๊ฑฐ๋ฆฌ ํƒ์ƒ‰ 3. result๋ฅผ ๊ฐฑ์‹ ํ•œ ์ ์ด ์—†์œผ๋ฉด answer.push_back(-1) 4. ์ตœ๋‹จ ๊ฒฝ๋กœ๋ฅผ ์ฐพ์•˜๋‹ค๋ฉด answer.push_back(result) ๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป C++ ์ฝ”๋“œ #include #inclu..

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋ชจ๋‘ 0์œผ๋กœ ๋งŒ๋“ค๊ธฐ C++ (Lv.3)

https://school.programmers.co.kr/learn/courses/30/lessons/76503?language=cpp ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr ์ด๋ฒˆ ๋ฌธ์ œ๋Š” dfs ๋ฌธ์ œ์˜€์Šต๋‹ˆ๋‹ค. ๐Ÿ“ ๋ฌธ์ œ ํ’€์ด 1. ์—ฐ์‚ฐ์„ ์œ„ํ•œ weight ๋ฒกํ„ฐ๋ฅผ ์ƒ์„ฑํ•˜์—ฌ a ๋ฒกํ„ฐ์™€ ๋™์ผํ•˜๊ฒŒ ์ดˆ๊ธฐํ™” 2. info ๋ฒกํ„ฐ์— ์ ๋“ค์˜ ์—ฐ๊ฒฐ ์ •๋ณด๋ฅผ ์ €์žฅ 3. ๋ฃจํŠธ ๋…ธ๋“œ๋ฅผ 0์œผ๋กœ ์‹œ์ž‘ํ•˜์—ฌ dfs ์ˆ˜ํ–‰ (๋ฃจํŠธ ๋…ธ๋“œ์˜ ๋ถ€๋ชจ ๋…ธ๋“œ๋Š” ์ž๊ธฐ ์ž์‹ ) ํ˜„์žฌ ๋…ธ๋“œ์™€ ์—ฐ๊ฒฐ๋œ ๋…ธ๋“œ๊ฐ€ ๋ถ€๋ชจ ๋…ธ๋“œ๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด dfs ์ˆ˜ํ–‰ ๋” ์ด์ƒ ํƒ์ƒ‰ํ•  ๋…ธ๋“œ๊ฐ€ ์—†๋‹ค๋ฉด (๋ฆฌํ”„ ๋…ธ๋“œ์— ๋„๋‹ฌํ–ˆ๋‹ค๋ฉด) โญ๏ธ..

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] 110 ์˜ฎ๊ธฐ๊ธฐ C++ (Lv.3)

https://school.programmers.co.kr/learn/courses/30/lessons/77886?language=cpp ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr ์ด๋ฒˆ ๋ฌธ์ œ๋Š” ์›”๊ฐ„ ์ฝ”๋“œ ์ฑŒ๋ฆฐ์ง€ ์‹œ์ฆŒ2 ๋ฌธ์ œ์˜€์Šต๋‹ˆ๋‹ค. ๐Ÿ“ ๋ฌธ์ œ ํ’€์ด 1. ๋ฌธ์ž์—ด str์—์„œ 110"์„ ๋ชจ๋‘ ์ œ๊ฑฐํ•˜๊ณ  acc ๋ฌธ์ž์—ด์— ์‚ฝ์ž… (ex. acc = "110110110 ...") 2. "110"์ด ์ œ๊ฑฐ๋œ ๋ฌธ์ž์—ด์—์„œ ๊ฐ€์žฅ ๋’ค์— ์žˆ๋Š” 0์˜ ์ธ๋ฑ์Šค ์ฐพ๊ธฐ ๊ฐ€์žฅ ๋’ค์— ์žˆ๋Š” 0์˜ ์ธ๋ฑ์Šค๋ฅผ ์ฐพ์ง€ ๋ชปํ–ˆ๋‹ค๋ฉด (1๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ ์žˆ์œผ๋ฉด) ๋ฌธ์ž์—ด ์•ž์— acc ์‚ฝ์ž… ์ฐพ์•˜๋‹ค๋ฉด ๊ฐ€์žฅ ๋’ค์— ์žˆ๋Š”..

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋„คํŠธ์›Œํฌ C++ (Lv.3)

https://school.programmers.co.kr/learn/courses/30/lessons/43162 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr ์ด๋ฒˆ ๋ฌธ์ œ๋Š” DFS ๋ฌธ์ œ์˜€์Šต๋‹ˆ๋‹ค. ๐Ÿ“ ๋ฌธ์ œ ํ’€์ด 1. 0 ์ปดํ“จํ„ฐ๋ฅผ ์‹œ์ž‘์œผ๋กœ i ์ปดํ“จํ„ฐ์™€ ์ง๊ฐ„์ ‘์ ์œผ๋กœ ์—ฐ๊ฒฐ๋œ ๋ชจ๋“  ์ปดํ“จํ„ฐ(computers[i])๋ฅผ ํƒ์ƒ‰ 2. i ์ปดํ“จํ„ฐ์™€ ์ง๊ฐ„์ ‘์ ์œผ๋กœ ์—ฐ๊ฒฐ๋œ ์ปดํ“จํ„ฐ๋Š” ๋ฐฉ๋ฌธ ํ‘œ์‹œ visited[i] = true 3. DFS ํ•จ์ˆ˜๊ฐ€ ์ข…๋ฃŒ๋˜๋ฉด answer += 1 (ํ•˜๋‚˜์˜ ๋„คํŠธ์›Œํฌ์ž„์„ ํ‘œํ˜„) ๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป C++ ์ฝ”๋“œ #include #include #define MAX 20..

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์ž…๊ตญ์‹ฌ์‚ฌ C++ (Lv.3)

https://programmers.co.kr/learn/courses/30/lessons/43238 ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ์ž…๊ตญ์‹ฌ์‚ฌ n๋ช…์ด ์ž…๊ตญ์‹ฌ์‚ฌ๋ฅผ ์œ„ํ•ด ์ค„์„ ์„œ์„œ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ์ž…๊ตญ์‹ฌ์‚ฌ๋Œ€์— ์žˆ๋Š” ์‹ฌ์‚ฌ๊ด€๋งˆ๋‹ค ์‹ฌ์‚ฌํ•˜๋Š”๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„์€ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ์ฒ˜์Œ์— ๋ชจ๋“  ์‹ฌ์‚ฌ๋Œ€๋Š” ๋น„์–ด์žˆ์Šต๋‹ˆ๋‹ค. ํ•œ ์‹ฌ์‚ฌ๋Œ€์—์„œ๋Š” ๋™์‹œ์— ํ•œ programmers.co.kr ์ด๋ฒˆ ๋ฌธ์ œ๋Š” ์ด๋ถ„ ํƒ์ƒ‰ ๋ฌธ์ œ์˜€์Šต๋‹ˆ๋‹ค. ๐Ÿ“ ๋ฌธ์ œ ํ’€์ด 1. ์ด๋ถ„ ํƒ์ƒ‰์„ ํ•˜๊ธฐ ์œ„ํ•ด n๋ช…์„ ์‹ฌ์‚ฌํ•˜๋Š”๋ฐ ๊ฑธ๋ฆฌ๋Š” ์ตœ์†Œ ์‹œ๊ฐ„๊ณผ ์ตœ๋Œ€ ์‹œ๊ฐ„ ์ •์˜ (์ตœ์†Œ ์‹œ๊ฐ„: left_val, ์ตœ๋Œ€ ์‹œ๊ฐ„: right_val) 2. mid ์‹œ๊ฐ„ ๋™์•ˆ ์‹ฌ์‚ฌ ๊ฐ€๋Šฅํ•œ ์‚ฌ๋žŒ ์ˆ˜๊ฐ€ n๋ช… ๋ณด๋‹ค ์ ์œผ๋ฉด ์‹œ๊ฐ„ ๋ฒ”์œ„๋ฅผ ๋Š˜๋ฆผ ← left_val = mid + 1 3. mid ์‹œ๊ฐ„ ๋™์•ˆ ์‹ฌ์‚ฌ ๊ฐ€๋Šฅํ•œ ์‚ฌ๋žŒ ์ˆ˜๊ฐ€ ..

๋ฐ˜์‘ํ˜•