ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค: N-Queen

๋ฌธ์ œ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - N-Queen ๊ฐ€๋กœ, ์„ธ๋กœ ๊ธธ์ด๊ฐ€ n์ธ ์ •์‚ฌ๊ฐํ˜•์œผ๋กœ๋œ ์ฒด์ŠคํŒ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒด์ŠคํŒ ์œ„์˜ n๊ฐœ์˜ ํ€ธ์ด ์„œ๋กœ๋ฅผ ๊ณต๊ฒฉํ•  ์ˆ˜ ์—†๋„๋ก ๋ฐฐ์น˜ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด์„œ n์ด 4์ธ๊ฒฝ์šฐ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ€ธ์„ ๋ฐฐ์น˜ํ•˜๋ฉด n๊ฐœ์˜ ํ€ธ์€ programmers.co.kr ๋ฌธ์ œ ํ’€์ด ์•ž์„œ ๋‹ค๋ฃฌ ๋ฐฑ์ค€: 9663 N-Queen, SWEA: 2806 N-Queen๊ณผ ๋™์ผํ•œ ๋ฌธ์ œ์ด๋‹ค. Queen์˜ ๊ฒฝ์šฐ ์ƒ, ํ•˜, ์ขŒ, ์šฐ์— ๋‹ค๋ฅธ Queen์ด ์—†์–ด์•ผ ํ•˜๊ณ , ๋Œ€๊ฐ์„ ์œผ๋กœ๋„ Queen์ด ์—†์–ด์•ผ ํ•œ๋‹ค๋Š” ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜์—ฌ์•ผ ํ•œ๋‹ค. ๋”ฐ๋ผ์„œ Queen์„ ๋ฐฐ์น˜ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ๋ฅผ ํŒ๋‹จํ•˜๋Š” ๊ฒƒ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ํ–‰์˜ ๊ฒฝ์šฐ DFS๋ฅผ ํ˜ธ์ถœํ•˜๋ฉฐ ์ฆ๊ฐ€์‹œํ‚ค๋ฏ€๋กœ, ๋ณ„๋„์˜ ์ค‘๋ณตํ™•์ธ์ด ํ•„์š”ํ•˜์ง€ ์•Š๋‹ค. ์—ด์˜ ๊ฒฝ์šฐ ํ•ด๋‹น ์—ด์„ ์„ ํƒํ•˜๋ฉด `set`์— ์ถ”๊ฐ€ํ•˜์—ฌ ์ค‘..

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค: 2 x n ํƒ€์ผ๋ง

๋ฌธ์ œ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - 2 x n ํƒ€์ผ๋ง ๊ฐ€๋กœ ๊ธธ์ด๊ฐ€ 2์ด๊ณ  ์„ธ๋กœ์˜ ๊ธธ์ด๊ฐ€ 1์ธ ์ง์‚ฌ๊ฐํ˜•๋ชจ์–‘์˜ ํƒ€์ผ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ง์‚ฌ๊ฐํ˜• ํƒ€์ผ์„ ์ด์šฉํ•˜์—ฌ ์„ธ๋กœ์˜ ๊ธธ์ด๊ฐ€ 2์ด๊ณ  ๊ฐ€๋กœ์˜ ๊ธธ์ด๊ฐ€ n์ธ ๋ฐ”๋‹ฅ์„ ๊ฐ€๋“ ์ฑ„์šฐ๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ํƒ€์ผ์„ ์ฑ„์šธ ๋•Œ๋Š” programmers.co.kr ๋ฌธ์ œ ํ’€์ด ์•ž์„œ ๋‹ค๋ฃฌ ๋ฐฑ์ค€: 11726 2xn ํƒ€์ผ๋ง๊ณผ ๋™์ผํ•œ ๋ฌธ์ œ์ด๋‹ค. N์ด ์ฆ๊ฐ€ํ•จ์— ๋”ฐ๋ผ `f(n) = f(n - 1) + f(n - 2)`์™€ ๊ฐ™์€ ๊ทœ์น™์„ ์ฐพ์„ ์ˆ˜ ์žˆ๊ณ  ์ด๋ฅผ `N`๋งŒํผ ๋ฐ˜๋ณตํ•˜๋ฉด ์›ํ•˜๋Š” ๊ฐ’์„ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค. ์ฝ”๋“œ def solution(n): a, b = 1, 1 for _ in range(n): a, b = b, a + b return a % 1000000007

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค: ๊ฑฐ์Šค๋ฆ„๋ˆ

๋ฌธ์ œ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ๊ฑฐ์Šค๋ฆ„๋ˆ Finn์€ ํŽธ์˜์ ์—์„œ ์•ผ๊ฐ„ ์•„๋ฅด๋ฐ”์ดํŠธ๋ฅผ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์•ผ๊ฐ„์— ์†๋‹˜์ด ๋„ˆ๋ฌด ์—†์–ด ์‹ฌ์‹ฌํ•œ Finn์€ ์†๋‹˜๋“ค๊ป˜ ๊ฑฐ์Šค๋ฆ„๋ˆ์„ n ์›์„ ์ค„ ๋•Œ ๋ฐฉ๋ฒ•์˜ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๊ตฌํ•˜๊ธฐ๋กœ ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด์„œ ์†๋‹˜๊ป˜ 5 programmers.co.kr ๋ฌธ์ œ ํ’€์ด ๊ฑฐ์Šฌ๋Ÿฌ ์ฃผ์–ด์•ผ ํ•˜๋Š” ๋ˆ N์ด ์žˆ๊ณ , ํ™”ํ ๋‹จ์œ„๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ด๋•Œ, ๋ˆ์„ ๊ฑฐ์Šฌ๋Ÿฌ ์ค„ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์˜ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•˜์—ฌ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ์ด ๋ฌธ์ œ๋Š” ์ด์ „์— ๋‹ค๋ฃฌ, ๋ฐฑ์ค€: 2293 ๋™์ „ 1 ๋ฌธ์ œ์™€ ๋™์ผํ•œ ๋ฌธ์ œ์ด๋‹ค. `DP`๋ฅผ ํ†ตํ•ด ๊ฐ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•˜์—ฌ์•ผ ํ•˜๋ฉฐ, ๊ทธ๋ ‡์ง€ ์•Š์„ ๊ฒฝ์šฐ ์‹œ๊ฐ„ ์ดˆ๊ณผ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. def solution(n, money): dp = [1] + [0] * n for coin in money: for price i..

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค: SQL - String, Date

๋ฌธ์ œ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr ๋ฌธ์ œ ํ’€์ด ๋ฌธ์ œ์—์„œ๋Š” ํŠน์ • ์กฐ๊ฑด์ด ์ผ์น˜ํ•˜๋Š”์ง€ ํ™•์ธํ•˜์—ฌ ๋งŒ์กฑํ•˜๋Š” ๊ฐ’๋“ค๋งŒ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋‚˜์˜จ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ํ•„๋“œ ๊ฐ’์„ ํ™•์ธํ•˜์—ฌ์•ผ ํ•œ๋‹ค. ํ•„๋“œ์˜ ๊ฐ’๋“ค์„ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” `IN`, `LIKE`์™€ `REGEXP`๋ฅผ ํ™œ์šฉํ•˜๋ฉด ์›ํ•˜๋Š” ๊ฒฐ๊ณผ๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค. ์ฝ”๋“œ ๋ฃจ์‹œ์™€ ์—˜๋ผ ์ฐพ๊ธฐ SELECT ANIMAL_ID, NAME, SEX_UPON_INTAKE FROM ANIMAL_INS WHERE NAME IN ('Lucy', 'Ella', 'Pickle', 'Rogan', 'Sabrina', 'Mitty') `Pyth..

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค: SQL - JOIN

๋ฌธ์ œ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr ๋ฌธ์ œ ํ’€์ด ๊ฐ ๋ฌธ์ œ์—์„œ๋Š” `ANIMAL_INS`, `ANIMAL_OUT`์™€ ๊ฐ™์ด ๋™๋ฌผ์ด ๋ณดํ˜ธ์†Œ์— ๋“ค์–ด์˜จ ์ •๋ณด์— ๋Œ€ํ•œ ํ…Œ์ด๋ธ”๊ณผ ๋ณดํ˜ธ์†Œ์—์„œ ๋‚˜๊ฐ„ ๊ฒฝ์šฐ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๊ฐ€์ง„ ํ…Œ์ด๋ธ”์ด ์ฃผ์–ด์ง„๋‹ค. ์ด๋•Œ ๋ฌธ์ œ์—์„œ๋Š” `JOIN`์„ ํ†ตํ•ด ๋‘ ๊ฐ€์ง€ ํ…Œ์ด๋ธ”์„ ํ•จ๊ป˜ ์กฐํšŒํ•˜์—ฌ ์›ํ•˜๋Š” ๊ฒฐ๊ณผ๋ฅผ ์ฐพ๋Š” ๋ฌธ์ œ๊ฐ€ ์ถœ์ œ๋œ๋‹ค. `JOIN`์„ ์ดํ•ดํ•˜๊ณ , `ON`, `WHERE`๋ฅผ ์ ์ ˆํžˆ ์ด์šฉํ•˜๋ฉด ๋ฌธ์ œ๋ฅผ ์‰ฝ๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฝ”๋“œ ์—†์–ด์ง„ ๊ธฐ๋ก ์ฐพ๊ธฐ SELECT OUTS.ANIMAL_ID, OUTS.NAME FROM ANIMAL_OUTS OUT..

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค: ์ค„ ์„œ๋Š” ๋ฐฉ๋ฒ•

๋ฌธ์ œ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ์ค„ ์„œ๋Š” ๋ฐฉ๋ฒ• n๋ช…์˜ ์‚ฌ๋žŒ์ด ์ผ๋ ฌ๋กœ ์ค„์„ ์„œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. n๋ช…์˜ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ๋Š” ๊ฐ๊ฐ 1๋ฒˆ๋ถ€ํ„ฐ n๋ฒˆ๊นŒ์ง€ ๋ฒˆํ˜ธ๊ฐ€ ๋งค๊ฒจ์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. n๋ช…์ด ์‚ฌ๋žŒ์„ ์ค„์„ ์„œ๋Š” ๋ฐฉ๋ฒ•์€ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด์„œ 3๋ช…์˜ ์‚ฌ๋žŒ programmers.co.kr ๋ฌธ์ œ ํ’€์ด ์ฒ˜์Œ ๋ฌธ์ œ๋ฅผ ์ ‘ํ•˜์˜€์„ ๋•Œ๋Š” `DFS`๋ฅผ ํ†ตํ•ด ๊ฐ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๊ตฌํ•˜๊ณ  `K`์ธ ๊ฒฝ์šฐ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ฉด ๋˜์ง€ ์•Š์„๊นŒ ์ƒ๊ฐํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด ๋ฐฉ์‹์€ `N`์ด 20์ด๋ฏ€๋กœ ์‹œ๊ฐ„ ์ดˆ๊ณผ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ๋”ฐ๋ผ์„œ `K`์ธ ๊ฒฝ์šฐ๋ฅผ ๋ฐ”๋กœ ๊ตฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ํ†ตํ•ด ํ’€์–ด์•ผ ์‹œ๊ฐ„ ์ดˆ๊ณผ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๋‹ค. ์ฆ‰, ์ด ๋ฌธ์ œ๋Š” ๋‹จ์ˆœํžˆ `DFS`๋ฅผ ํ†ตํ•ด ์กฐํ•ฉ์„ ๊ตฌํ•  ์ˆ˜ ์žˆ๋Š”๊ฐ€?๋ฅผ ๋ฌป๋Š” ๋ฌธ์ œ๊ฐ€ ์•„๋‹Œ ํŒฉํ† ๋ฆฌ์–ผ ์„ฑ์งˆ์„ ํ†ตํ•ด ํšจ์œจ์ ์œผ๋กœ K์ธ ๊ฒฝ์šฐ์˜ ์กฐํ•ฉ์„ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š”๊ฐ€?๋ฅผ ๋ฌป๋Š” ๋ฌธ..

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค: ๋ฉ€๋ฆฌ ๋›ฐ๊ธฐ

๋ฌธ์ œ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ๋ฉ€๋ฆฌ ๋›ฐ๊ธฐ ํšจ์ง„์ด๋Š” ๋ฉ€๋ฆฌ ๋›ฐ๊ธฐ๋ฅผ ์—ฐ์Šตํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํšจ์ง„์ด๋Š” ํ•œ๋ฒˆ์— 1์นธ, ๋˜๋Š” 2์นธ์„ ๋›ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์นธ์ด ์ด 4๊ฐœ ์žˆ์„ ๋•Œ, ํšจ์ง„์ด๋Š” (1์นธ, 1์นธ, 1์นธ, 1์นธ) (1์นธ, 2์นธ, 1์นธ) (1์นธ, 1์นธ, 2์นธ) (2์นธ, 1์นธ, 1์นธ) (2์นธ, 2 programmers.co.kr ๋ฌธ์ œ ํ’€์ด ๋ฉ€๋ฆฌ ๋›ฐ๊ธฐ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด 1์นธ ๋˜๋Š” 2์นธ์œผ๋กœ ์ •ํ•ด์ ธ ์žˆ๋‹ค. ์ด๋•Œ N๊ฐœ์˜ ์นธ์„ ๋›ฐ๊ณ ์ž ํ•˜๋Š” ๊ฒฝ์šฐ, ๊ฒฝ์šฐ์˜ ์ˆ˜๊ฐ€ ๋ช‡ ๊ฐœ์ธ์ง€ ์ฐพ๋Š” ๋ฌธ์ œ์ด๋‹ค. ์ด๋Š” ๊ฐ ๊ฒฝ์šฐ์— ๋”ฐ๋ผ ์–ด๋–ค ๊ทœ์น™์„ ์ด๋ฃจ๋Š”์ง€ ํ™•์ธํ•˜๋ฉด ์‰ฝ๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค. N์ด 1์ธ ๊ฒฝ์šฐ 1๊ฐœ : 1์นธ N์ด 2์ธ ๊ฒฝ์šฐ 2๊ฐœ : (1 + 1์นธ), 2์นธ N์ด 3์ธ ๊ฒฝ์šฐ 3๊ฐœ : (1 + 1 + 1์นธ), (2 + 1์นธ), (1 + 2์นธ) ์ฆ‰ N์— ๋”ฐ..

๊ธ€ ๋ณด๊ด€ํ•จ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€