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

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

๋ฐฑ์ค€: 14425 ๋ฌธ์ž์—ด ์ง‘ํ•ฉ

๋ฌธ์ œ 14425๋ฒˆ: ๋ฌธ์ž์—ด ์ง‘ํ•ฉ ์ฒซ์งธ ์ค„์— ๋ฌธ์ž์—ด์˜ ๊ฐœ์ˆ˜ N๊ณผ M (1 ≤ N ≤ 10,000, 1 ≤ M ≤ 10,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ N๊ฐœ์˜ ์ค„์—๋Š” ์ง‘ํ•ฉ S์— ํฌํ•จ๋˜์–ด ์žˆ๋Š” ๋ฌธ์ž์—ด๋“ค์ด ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ M๊ฐœ์˜ ์ค„์—๋Š” ๊ฒ€์‚ฌํ•ด์•ผ ํ•˜๋Š” ๋ฌธ์ž์—ด๋“ค์ด ์ฃผ์–ด www.acmicpc.net ๋ฌธ์ œ ํ’€์ด N๊ฐœ์— ๋ฌธ์ž์—ด๋กœ ์ด๋ฃจ์–ด์ง„ ์ง‘ํ•ฉ S๊ฐ€ ์žˆ์„ ๋•Œ, M๊ฐœ์— ๋ฌธ์ž์—ด ์ค‘ ์ง‘ํ•ฉ S์— ํฌํ•จ๋˜๋Š” ๋ฌธ์ž๊ฐ€ ์ด ๋ช‡ ๊ฐœ์ธ์ง€ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ๋ฌธ์ œ๋ฅผ ํ’€๊ธฐ ์œ„ํ•ด์„œ๋Š” `๋”•์…”๋„ˆ๋ฆฌ`์™€ `in`์„ ํ™œ์šฉํ•˜๋ฉด ์‰ฝ๊ฒŒ ํ’€ ์ˆ˜ ์žˆ๋‹ค. M๊ฐœ์˜ ๋ฌธ์ž์—ด ์ค‘, N์— ํฌํ•จ๋˜๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” `if pattern in strings`์™€ ๊ฐ™์ด ํ™•์ธํ•˜๋ฉด ๋œ๋‹ค. ํŒŒ์ด์ฌ์˜ `in` ์—ฐ์‚ฐ์€ ๋ฆฌ์ŠคํŠธ์˜ ๊ฒฝ์šฐ `O(N)`์˜ ์‹œ๊ฐ„์ด ์†Œ์š”๋˜์ง€๋งŒ ๋”•์…”๋„ˆ๋ฆฌ์˜ ๊ฒฝ์šฐ `O(1)`์˜..

๋ฐฑ์ค€: 1305 ๊ด‘๊ณ 

๋ฌธ์ œ 1305๋ฒˆ: ๊ด‘๊ณ  ์ฒซ์งธ ์ค„์— ๊ด‘๊ณ ํŒ์˜ ํฌ๊ธฐ L์ด ์ฃผ์–ด์ง€๊ณ , ๋‘˜์งธ ์ค„์— ํ˜„์žฌ ๊ด‘๊ณ ํŒ์— ๋ณด์ด๋Š” ๋ฌธ์ž์—ด์ด ์ฃผ์–ด์ง„๋‹ค. L์€ ๋ฐฑ๋งŒ๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜์ด๋‹ค. www.acmicpc.net ๋ฌธ์ œ ํ’€์ด ์ „๊ด‘ํŒ์— N๊ฐœ์˜ ๋ฌธ์ž์—ด์„ ๊ด‘๊ณ ๋ฅผ ํ‘œ์‹œํ•œ๋‹ค. ์ด๋•Œ ์‹œ๊ฐ„์ด ์ง€๋‚จ์— ๋”ฐ๋ผ ๋ฌธ์ž์—ด์€ ํ•œ ์นธ์”ฉ ์˜†์œผ๋กœ ์ด๋™ํ•œ๋‹ค. ์–ด๋Š ์ˆœ๊ฐ„ ๊ด‘๊ณ ํŒ์„ ๋ณผ ๋•Œ, ์“ฐ์—ฌ ์žˆ๋Š” ๋ฌธ์ž๊ฐ€ ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง„๋‹ค๋ฉด ๊ฐ€๋Šฅํ•œ ๊ด‘๊ณ ์˜ ๊ธธ์ด ์ค‘ ๊ฐ€์žฅ ์งง์€ ๊ฒƒ์„ ์ถœ๋ ฅํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ์ด๋Š” `KMP ์•Œ๊ณ ๋ฆฌ์ฆ˜`์—์„œ ์ ‘๋ฏธ์‚ฌ์™€ ์ ‘๋‘์‚ฌ๊ฐ€ ๋˜๋Š” ๋ฌธ์ž์—ด์˜ ์ตœ๋Œ€ ๊ธธ์ด๋ฅผ ์ƒ์„ฑํ•˜๋ฉด ์‰ฝ๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ์ด๋‹ค. ๋งŒ์•ฝ `KMP ์•Œ๊ณ ๋ฆฌ์ฆ˜`์— ๋Œ€ํ•ด ์ดํ•ดํ•˜๊ณ  ์žˆ์ง€ ์•Š๋‹ค๋ฉด ๋ฌธ์ œ๋ฅผ ํ’€ ์ˆ˜ ์—†๋‹ค. ์ฝ”๋“œ def make_table(patten): table = [0] * l j = 0 for i ..

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

๋ฌธ์ œ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ์ค„ ์„œ๋Š” ๋ฐฉ๋ฒ• 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์— ๋”ฐ..

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค: ๋ฐฉ๋ฌธ ๊ธธ์ด

๋ฌธ์ œ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ๋ฐฉ๋ฌธ ๊ธธ์ด programmers.co.kr ๋ฌธ์ œ ํ’€์ด ์บ๋ฆญํ„ฐ๊ฐ€ [0, 0] ์ขŒํ‘œ์—์„œ ์‹œ์ž‘ํ•ด ๋ช…๋ น์— ๋”ฐ๋ผ ์ƒ, ํ•˜, ์ขŒ, ์šฐ๋กœ ์ด๋™ํ•œ๋‹ค. ์ค‘๋ณตํ•˜์—ฌ ์ด๋™ํ•œ ๊ฑฐ๋ฆฌ์™€ ๋ฒ”์œ„ ๋ฐ–์œผ๋กœ ์ด๋™ํ•œ ๊ฒฝ์šฐ๋ฅผ ์ œ์™ธํ•˜์—ฌ ์ด๋™ํ•œ ๊ฑฐ๋ฆฌ์˜ ํ•ฉ์„ ๊ณ„์‚ฐํ•˜์—ฌ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ๋ฌธ์ œ๋ฅผ ํ’€๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋”•์…”๋„ˆ๋ฆฌ๋ฅผ ํ†ตํ•ด `U, D, L, R`๋กœ ์ด๋™ํ•  ๊ฒฝ์šฐ ๋ณ€ํ™”ํ•˜๋Š” ์ขŒํ‘œ๋ฅผ ์„ ์–ธํ•œ ํ›„, ๋ฒ”์œ„์— ๋”ฐ๋ผ ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ `visited`์— ์ถ”๊ฐ€ํ•˜๋ฉด ๋œ๋‹ค. ๋ฌธ์ œ์—์„œ ๊ตฌํ•˜๊ณ ์ž ํ•˜๋Š” ๋‹ต์€ `visteid // 2`๊ฐ€ ๋œ๋‹ค. ์ด์™€ ๊ฐ™์€ ์ด์œ ๋Š” ์ด๋™ํ•  ๋•Œ๋Š” ์ถœ๋ฐœํ•œ ๊ณณ๊ณผ ๋„์ฐฉํ•œ ๊ณณ ์–‘๋ฐฉํ–ฅ์œผ๋กœ ๊ธฐ๋กํ•˜์—ฌ์•ผ ํ•œ๋‹ค. ์ฆ‰ ํ˜„์žฌ ์ขŒํ‘œ๊ฐ€ `[x, y]` ๋‹ค์Œ ์ขŒํ‘œ๊ฐ€ `[next_x, next_y]`๋ผ๋ฉด `[x, y, next_x, next_y],..

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค: ์ž…๊ตญ์‹ฌ์‚ฌ

๋ฌธ์ œ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ์ž…๊ตญ์‹ฌ์‚ฌ n๋ช…์ด ์ž…๊ตญ์‹ฌ์‚ฌ๋ฅผ ์œ„ํ•ด ์ค„์„ ์„œ์„œ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ์ž…๊ตญ์‹ฌ์‚ฌ๋Œ€์— ์žˆ๋Š” ์‹ฌ์‚ฌ๊ด€๋งˆ๋‹ค ์‹ฌ์‚ฌํ•˜๋Š”๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„์€ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ์ฒ˜์Œ์— ๋ชจ๋“  ์‹ฌ์‚ฌ๋Œ€๋Š” ๋น„์–ด์žˆ์Šต๋‹ˆ๋‹ค. ํ•œ ์‹ฌ์‚ฌ๋Œ€์—์„œ๋Š” ๋™์‹œ์— ํ•œ programmers.co.kr ๋ฌธ์ œ ํ’€์ด n๋ช…์ด ์ž…๊ตญ์‹ฌ์‚ฌ๋ฅผ ํ•˜๋Š”๋ฐ ์‹ฌ์‚ฌ๋Œ€์— ๋”ฐ๋ผ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ์ด๋•Œ ์‹ฌ์‚ฌ ๋Œ€๋งˆ๋‹ค ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„์€ ๊ฐ๊ธฐ ๋‹ค๋ฅด๋‹ค. ์ด ๋ฌธ์ œ๋Š” ๋ถ„๋ฅ˜์™€ ๊ฐ™์ด `์ด๋ถ„ ํƒ์ƒ‰`์œผ๋กœ ํ’€์–ด์•ผ ์‹œ๊ฐ„ ๋‚ด์— ํ†ต๊ณผ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค. ์ฆ‰, `๋ชจ๋‘ ์ž…๊ตญํ•˜๋Š”๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„ // ๊ฐ ์‹ฌ์‚ฌ๋Œ€๋ณ„ ์‹ฌ์‚ฌ์‹œ๊ฐ„ = ์ž…๊ตญ์ž ์ˆ˜`๋ฅผ ๋งŒ์กฑํ•˜๋Š” ์ง€๋ฅผ ์ฐพ์•„์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— `์ด๋ถ„ ํƒ์ƒ‰`์œผ๋กœ ๋ฌธ์ œ๋ฅผ ํ’€์–ด์•ผ ํ•œ๋‹ค. `์ด๋ถ„ ํƒ์ƒ‰`์—์„œ๋Š” `left`, `right`๋ฅผ ์„ค์ •ํ•˜์—ฌ์•ผ ํ•˜๋Š”๋ฐ ์ด๋Š” ๊ฐ€์žฅ ์งง๊ฒŒ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„ 1๊ณผ..

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