C++ 35

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๊ด„ํ˜ธ ํšŒ์ „ํ•˜๊ธฐ C++

https://school.programmers.co.kr/learn/courses/30/lessons/76502 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr ์ด๋ฒˆ ๋ฌธ์ œ๋Š” ๊ตฌํ˜„ ๋ฌธ์ œ์˜€์Šต๋‹ˆ๋‹ค. ๐Ÿ“ ๋ฌธ์ œ ํ’€์ด 1. ๋ฐฐ์—ด์˜ ์ธ๋ฑ์Šค๋ฅผ ๋‚˜๋จธ์ง€๋กœ ์ƒ๊ฐํ•˜์—ฌ s๋ฅผ ์™ผ์ชฝ์œผ๋กœ ํ•œ ์นธ ํšŒ์ „ (์ฒ˜์Œ์—๋Š” s ๊ทธ๋Œ€๋กœ) โญ๏ธ 2. ํ•œ ์นธ ํšŒ์ „๋œ ๊ด„ํ˜ธ ๋ฌธ์ž์—ด์ด ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ ๋ฌธ์ž์—ด์ธ์ง€ ํ™•์ธ (isCorrect ํ•จ์ˆ˜ ํ˜ธ์ถœ) ์—ฌ๋Š” ๊ด„ํ˜ธ((๋˜๋Š” [ ๋˜๋Š” {)์ด๋ฉด -> ์Šคํƒ์— push ({{{ ๊ฐ™์€ ๊ฒฝ์šฐ๋ฅผ ์œ„ํ•ด์„œ bool ํƒ€์ž…์˜ ๋ณ€์ˆ˜ ์‚ฌ์šฉ) ๋‹ซ๋Š” ๊ด„ํ˜ธ์ด๋ฉด -> ์Šคํƒ์˜ ๋งˆ์ง€๋ง‰ ๊ฐ’์ด ๊ฐ™์€ ์ข…๋ฅ˜..

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋น›์˜ ๊ฒฝ๋กœ ์‚ฌ์ดํด C++ (Lv.2)

https://school.programmers.co.kr/learn/courses/30/lessons/86052 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr ์ด๋ฒˆ ๋ฌธ์ œ๋Š” BFS์™€ ์œ ์‚ฌํ•œ ๋ฌธ์ œ์˜€์Šต๋‹ˆ๋‹ค. ๋น›์ด 4๋ฐฉํ–ฅ(์ƒ, ์šฐ, ํ•˜, ์ขŒ)์œผ๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— 3์ฐจ์› ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฉ๋ฌธ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•ด ์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค. ๐Ÿ“ ๋ฌธ์ œ ํ’€์ด 1. ๊ฐ ์นธ๋งˆ๋‹ค 4๊ฐœ์˜ ๋ฐฉํ–ฅ(์ƒ, ์šฐ, ํ•˜, ์ขŒ)์œผ๋กœ getLengthOfCycle ํ•จ์ˆ˜ ์‹คํ–‰ 2. ์•„์ง ํ•ด๋‹น ๋ฐฉํ–ฅ์œผ๋กœ ๋น›์„ ์˜์ง€ ์•Š์€ ์นธ์ด๋ผ๋ฉด • cnt ๋ณ€์ˆ˜(๊ฒฝ๋กœ ์‚ฌ์ดํด์˜ ๊ธธ์ด) 1 ์ฆ๊ฐ€ • ํ•ด๋‹น ๋ฐฉํ–ฅ์œผ๋กœ ๋น›์„ ์œ ์นธ์ž„์„ ..

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] LV.1 ๊ณต์› ์‚ฐ์ฑ… C++

https://school.programmers.co.kr/learn/courses/30/lessons/172928 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr ์ด๋ฒˆ ๋ฌธ์ œ๋Š” BFS์™€ ์œ ์‚ฌํ•œ ๋ฌธ์ œ์˜€์Šต๋‹ˆ๋‹ค. 2๊ฐ€์ง€ ๋ฐฉ๋ฒ•์œผ๋กœ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค. 1. BFS์™€ ์œ ์‚ฌํ•˜๊ฒŒ ํ’€์ด ๐Ÿ“ ๋ฌธ์ œ ํ’€์ด 1. map ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ฐฉํ–ฅ์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฌธ์ž('N' ๋˜๋Š” 'S' ๋˜๋Š” 'W' ๋˜๋Š” 'E')์™€ ํ•ด๋‹น ์ขŒํ‘œ๋ฅผ ์ธ๋ฑ์Šค๋กœ ๋งคํ•‘ 2. ์‹œ์ž‘์ ์„ loc ๋ณ€์ˆ˜์— ์ €์žฅ 3. routes(๋กœ๋ด‡ ๊ฐ•์•„์ง€๊ฐ€ ์ˆ˜ํ–‰ํ•  ๋ช…๋ น์ด ๋‹ด๊ธด ๋ฌธ์ž์—ด ๋ฐฐ์—ด)๋ฅผ ์ˆœํšŒํ•˜๋ฉด์„œ ๊ฐ ๋ช…๋ น๋งˆ๋‹ค ๊ฑฐ๋ฆฌ(n)๋งŒํผ while๋ฌธ ..

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์ž…๊ตญ์‹ฌ์‚ฌ 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 ์‹œ๊ฐ„ ๋™์•ˆ ์‹ฌ์‚ฌ ๊ฐ€๋Šฅํ•œ ์‚ฌ๋žŒ ์ˆ˜๊ฐ€ ..

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์ฃผ์‹ ๊ฐ€๊ฒฉ

programmers.co.kr/learn/courses/30/lessons/42584?language=c ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ์ฃผ์‹๊ฐ€๊ฒฉ ์ดˆ ๋‹จ์œ„๋กœ ๊ธฐ๋ก๋œ ์ฃผ์‹๊ฐ€๊ฒฉ์ด ๋‹ด๊ธด ๋ฐฐ์—ด prices๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, ๊ฐ€๊ฒฉ์ด ๋–จ์–ด์ง€์ง€ ์•Š์€ ๊ธฐ๊ฐ„์€ ๋ช‡ ์ดˆ์ธ์ง€๋ฅผ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•˜์„ธ์š”. ์ œํ•œ์‚ฌํ•ญ prices์˜ ๊ฐ ๊ฐ€๊ฒฉ์€ 1 ์ด์ƒ 10,00 programmers.co.kr ์ด๋ฒˆ ๋ฌธ์ œ๋Š” ์Šคํƒ(stack) ๋ฌธ์ œ์˜€์Šต๋‹ˆ๋‹ค. ๐Ÿ“ ๋ฌธ์ œ ํ’€์ด 1. ์ฃผ์‹ ๊ฐ€๊ฒฉ์ด ๋–จ์–ด์กŒ๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•œ ์Šคํƒ s๋ฅผ ์„ ์–ธ 2. ์ฃผ์‹ ๊ฐ€๊ฒฉ์ด ๋–จ์–ด์กŒ๋‹ค๋ฉด, ํ˜„์žฌ๊นŒ์ง€์˜ ์‹œ๊ฐ„ - ์ฃผ์‹๊ฐ€๊ฒฉ์ด ๊ธฐ๋ก๋œ ์‹œ๊ฐ„์„ ํ•ด๋‹น ์‹œ์ ์— ์ €์žฅ โญ๏ธ 3. while ๋ฌธ์ด ์ข…๋ฃŒ๋  ๋•Œ๋งˆ๋‹ค ์ดˆ(์ธ๋ฑ์Šค)๋ฅผ s์— ์‚ฝ์ž… 4. ๋งˆ์ง€๋ง‰ ์‹œ์ ๊นŒ์ง€ ๊ฐ€๊ฒฉ์ด ๋–จ์–ด์ง€์ง€ ์•Š..

๋ฐ˜์‘ํ˜•