๐Ÿ–ฅ๏ธ Study Note

    [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค]level.2 - N-Queen(C++)

    [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค]level.2 - N-Queen(C++)

    https://school.programmers.co.kr/learn/courses/30/lessons/12952 ๋ฌธ์ œ ์„ค๋ช… ๊ฐ€๋กœ, ์„ธ๋กœ ๊ธธ์ด๊ฐ€ n์ธ ์ •์‚ฌ๊ฐํ˜•์œผ๋กœ๋œ ์ฒด์ŠคํŒ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒด์ŠคํŒ ์œ„์˜ n๊ฐœ์˜ ํ€ธ์ด ์„œ๋กœ๋ฅผ ๊ณต๊ฒฉํ•  ์ˆ˜ ์—†๋„๋ก ๋ฐฐ์น˜ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด์„œ n์ด 4์ธ๊ฒฝ์šฐ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ€ธ์„ ๋ฐฐ์น˜ํ•˜๋ฉด n๊ฐœ์˜ ํ€ธ์€ ์„œ๋กœ๋ฅผ ํ•œ๋ฒˆ์— ๊ณต๊ฒฉ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ฒด์ŠคํŒ์˜ ๊ฐ€๋กœ ์„ธ๋กœ์˜ ์„ธ๋กœ์˜ ๊ธธ์ด n์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, n๊ฐœ์˜ ํ€ธ์ด ์กฐ๊ฑด์— ๋งŒ์กฑ ํ•˜๋„๋ก ๋ฐฐ์น˜ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์˜ ์ˆ˜๋ฅผ returnํ•˜๋Š” solutionํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”. ๋‚ด ํ’€์ด N-Queen์€ ๋ฐฑํŠธ๋ž˜ํ‚น์˜ ๋Œ€ํ‘œ์ ์ธ ์˜ˆ์ œ๋ผ๊ณ  ํ•œ๋‹ค. ๋ฐฑํŠธ๋ž˜ํ‚น์„ ๊ณต๋ถ€ํ•˜๋ฉด์„œ ๋‹ค์‹œ ํ’€์–ด๋ดค๋Š”๋ฐ, ์กฐ๊ฑด์— ๋”ฐ๋ผ DFS๋ฅผ ์ง„ํ–‰ํ•˜๋‹ค๊ฐ€ ์กฐ๊ฑด์— ๋งž์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๋ผ๋ฉด ์ฒ˜์Œ๋ถ€ํ„ฐ ์กฐ๊ฑด์— ๋”ฐ๋ผ..

    [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค]level.2 - n^2 ๋ฐฐ์—ด ์ž๋ฅด๊ธฐ(C++)

    [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค]level.2 - n^2 ๋ฐฐ์—ด ์ž๋ฅด๊ธฐ(C++)

    https://school.programmers.co.kr/learn/courses/30/lessons/87390 ๋ฌธ์ œ ์„ค๋ช… ์ •์ˆ˜ n, left, right๊ฐ€ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. ๋‹ค์Œ ๊ณผ์ •์„ ๊ฑฐ์ณ์„œ 1์ฐจ์› ๋ฐฐ์—ด์„ ๋งŒ๋“ค๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. nํ–‰ n์—ด ํฌ๊ธฐ์˜ ๋น„์–ด์žˆ๋Š” 2์ฐจ์› ๋ฐฐ์—ด์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค. i = 1, 2, 3, ..., n์— ๋Œ€ํ•ด์„œ, ๋‹ค์Œ ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•ฉ๋‹ˆ๋‹ค. 1ํ–‰ 1์—ด๋ถ€ํ„ฐ iํ–‰ i์—ด๊นŒ์ง€์˜ ์˜์—ญ ๋‚ด์˜ ๋ชจ๋“  ๋นˆ ์นธ์„ ์ˆซ์ž i๋กœ ์ฑ„์›๋‹ˆ๋‹ค. 1ํ–‰, 2ํ–‰, ..., nํ–‰์„ ์ž˜๋ผ๋‚ด์–ด ๋ชจ๋‘ ์ด์–ด๋ถ™์ธ ์ƒˆ๋กœ์šด 1์ฐจ์› ๋ฐฐ์—ด์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด 1์ฐจ์› ๋ฐฐ์—ด์„ arr์ด๋ผ ํ•  ๋•Œ, arr[left], arr[left+1], ..., arr[right]๋งŒ ๋‚จ๊ธฐ๊ณ  ๋‚˜๋จธ์ง€๋Š” ์ง€์›๋‹ˆ๋‹ค. ์ •์ˆ˜ n, left, right๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. ์ฃผ์–ด..

    [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค]level.2 - ํ…Œ์ด๋ธ” ํ•ด์‹œ ํ•จ์ˆ˜(C++)

    https://school.programmers.co.kr/learn/courses/30/lessons/147354 ๋ฌธ์ œ ์„ค๋ช… ์™„ํ˜ธ๊ฐ€ ๊ด€๋ฆฌํ•˜๋Š” ์–ด๋–ค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ํ•œ ํ…Œ์ด๋ธ”์€ ๋ชจ๋‘ ์ •์ˆ˜ ํƒ€์ž…์ธ ์ปฌ๋Ÿผ๋“ค๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ํ…Œ์ด๋ธ”์€ 2์ฐจ์› ํ–‰๋ ฌ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์—ด์€ ์ปฌ๋Ÿผ์„ ๋‚˜ํƒ€๋‚ด๊ณ , ํ–‰์€ ํŠœํ”Œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ์ปฌ๋Ÿผ์€ ๊ธฐ๋ณธํ‚ค๋กœ์„œ ๋ชจ๋“  ํŠœํ”Œ์— ๋Œ€ํ•ด ๊ทธ ๊ฐ’์ด ์ค‘๋ณต๋˜์ง€ ์•Š๋„๋ก ๋ณด์žฅ๋ฉ๋‹ˆ๋‹ค. ์™„ํ˜ธ๋Š” ์ด ํ…Œ์ด๋ธ”์— ๋Œ€ํ•œ ํ•ด์‹œ ํ•จ์ˆ˜๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •์˜ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ํ•ด์‹œ ํ•จ์ˆ˜๋Š” col, row_begin, row_end์„ ์ž…๋ ฅ์œผ๋กœ ๋ฐ›์Šต๋‹ˆ๋‹ค. ํ…Œ์ด๋ธ”์˜ ํŠœํ”Œ์„ col๋ฒˆ์งธ ์ปฌ๋Ÿผ์˜ ๊ฐ’์„ ๊ธฐ์ค€์œผ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ์„ ํ•˜๋˜, ๋งŒ์•ฝ ๊ทธ ๊ฐ’์ด ๋™์ผํ•˜๋ฉด ๊ธฐ๋ณธํ‚ค์ธ ์ฒซ ๋ฒˆ์งธ ์ปฌ๋Ÿผ์˜ ๊ฐ’์„ ๊ธฐ์ค€์œผ๋กœ ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌํ•ฉ๋‹ˆ๋‹ค. ์ •๋ ฌ๋œ ๋ฐ์ดํ„ฐ์—์„œ S..

    [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค]level.3 - ๊ฑฐ์Šค๋ฆ„๋ˆ(C++)

    ๋ฌธ์ œ ์„ค๋ช… Finn์€ ํŽธ์˜์ ์—์„œ ์•ผ๊ฐ„ ์•„๋ฅด๋ฐ”์ดํŠธ๋ฅผ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์•ผ๊ฐ„์— ์†๋‹˜์ด ๋„ˆ๋ฌด ์—†์–ด ์‹ฌ์‹ฌํ•œ Finn์€ ์†๋‹˜๋“ค๊ป˜ ๊ฑฐ์Šค๋ฆ„๋ˆ์„ n ์›์„ ์ค„ ๋•Œ ๋ฐฉ๋ฒ•์˜ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๊ตฌํ•˜๊ธฐ๋กœ ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด์„œ ์†๋‹˜๊ป˜ 5์›์„ ๊ฑฐ์Šฌ๋Ÿฌ ์ค˜์•ผ ํ•˜๊ณ  1์›, 2์›, 5์›์ด ์žˆ๋‹ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด 4๊ฐ€์ง€ ๋ฐฉ๋ฒ•์œผ๋กœ 5์›์„ ๊ฑฐ์Šฌ๋Ÿฌ ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 1์›์„ 5๊ฐœ ์‚ฌ์šฉํ•ด์„œ ๊ฑฐ์Šฌ๋Ÿฌ ์ค€๋‹ค. 1์›์„ 3๊ฐœ ์‚ฌ์šฉํ•˜๊ณ , 2์›์„ 1๊ฐœ ์‚ฌ์šฉํ•ด์„œ ๊ฑฐ์Šฌ๋Ÿฌ ์ค€๋‹ค. 1์›์„ 1๊ฐœ ์‚ฌ์šฉํ•˜๊ณ , 2์›์„ 2๊ฐœ ์‚ฌ์šฉํ•ด์„œ ๊ฑฐ์Šฌ๋Ÿฌ ์ค€๋‹ค. 5์›์„ 1๊ฐœ ์‚ฌ์šฉํ•ด์„œ ๊ฑฐ์Šฌ๋Ÿฌ ์ค€๋‹ค. ๊ฑฐ์Šฌ๋Ÿฌ ์ค˜์•ผ ํ•˜๋Š” ๊ธˆ์•ก n๊ณผ Finn์ด ํ˜„์žฌ ๋ณด์œ ํ•˜๊ณ  ์žˆ๋Š” ๋ˆ์˜ ์ข…๋ฅ˜ money๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, Finn์ด n ์›์„ ๊ฑฐ์Šฌ๋Ÿฌ ์ค„ ๋ฐฉ๋ฒ•์˜ ์ˆ˜๋ฅผ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด ์ฃผ์„ธ..

    [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค]level.2 - [์นด์นด์˜ค ์ธํ„ด] ์ˆ˜์‹ ์ตœ๋Œ€ํ™”(C++)

    https://school.programmers.co.kr/learn/courses/30/lessons/67257 ๋ฌธ์ œ ์„ค๋ช… IT ๋ฒค์ฒ˜ ํšŒ์‚ฌ๋ฅผ ์šด์˜ํ•˜๊ณ  ์žˆ๋Š” ๋ผ์ด์–ธ์€ ๋งค๋…„ ์‚ฌ๋‚ด ํ•ด์ปคํ†ค ๋Œ€ํšŒ๋ฅผ ๊ฐœ์ตœํ•˜์—ฌ ์šฐ์Šน์ž์—๊ฒŒ ์ƒ๊ธˆ์„ ์ง€๊ธ‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ๋Œ€ํšŒ์—์„œ๋Š” ์šฐ์Šน์ž์—๊ฒŒ ์ง€๊ธ‰๋˜๋Š” ์ƒ๊ธˆ์„ ์ด์ „ ๋Œ€ํšŒ์™€๋Š” ๋‹ค๋ฅด๊ฒŒ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ๊ฒฐ์ •ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ํ•ด์ปคํ†ค ๋Œ€ํšŒ์— ์ฐธ๊ฐ€ํ•˜๋Š” ๋ชจ๋“  ์ฐธ๊ฐ€์ž๋“ค์—๊ฒŒ๋Š” ์ˆซ์ž๋“ค๊ณผ 3๊ฐ€์ง€์˜ ์—ฐ์‚ฐ๋ฌธ์ž(+, -, *) ๋งŒ์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ์—ฐ์‚ฐ ์ˆ˜์‹์ด ์ „๋‹ฌ๋˜๋ฉฐ, ์ฐธ๊ฐ€์ž์˜ ๋ฏธ์…˜์€ ์ „๋‹ฌ๋ฐ›์€ ์ˆ˜์‹์— ํฌํ•จ๋œ ์—ฐ์‚ฐ์ž์˜ ์šฐ์„ ์ˆœ์œ„๋ฅผ ์ž์œ ๋กญ๊ฒŒ ์žฌ์ •์˜ํ•˜์—ฌ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ํฐ ์ˆซ์ž๋ฅผ ์ œ์ถœํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‹จ, ์—ฐ์‚ฐ์ž์˜ ์šฐ์„ ์ˆœ์œ„๋ฅผ ์ƒˆ๋กœ ์ •์˜ํ•  ๋•Œ, ๊ฐ™์€ ์ˆœ์œ„์˜ ์—ฐ์‚ฐ์ž๋Š” ์—†์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, + > - > * ๋˜๋Š” - >..