๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋กAlgorithm (26)

Lemonlover๐Ÿง˜๐Ÿป‍โ™€๏ธ

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - 124 ๋‚˜๋ผ์˜ ์ˆซ์ž

https://programmers.co.kr/learn/courses/30/lessons/12899 ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - 124 ๋‚˜๋ผ์˜ ์ˆซ์ž | ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 124 ๋‚˜๋ผ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. 124 ๋‚˜๋ผ์—์„œ๋Š” 10์ง„๋ฒ•์ด ์•„๋‹Œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ž์‹ ๋“ค๋งŒ์˜ ๊ทœ์น™์œผ๋กœ ์ˆ˜๋ฅผ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค. 124 ๋‚˜๋ผ์—๋Š” ์ž์—ฐ์ˆ˜๋งŒ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. 124 ๋‚˜๋ผ์—๋Š” ๋ชจ๋“  ์ˆ˜๋ฅผ ํ‘œํ˜„ํ•  ๋•Œ 1, 2, 4๋งŒ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด์„œ 124 ๋‚˜๋ผ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์ˆซ์ž๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ณ€ํ™˜๋ฉ๋‹ˆ๋‹ค. 10์ง„๋ฒ• 124 ๋‚˜๋ผ 10์ง„๋ฒ• 124 ๋‚˜๋ผ 1 1 6 14 2 2 7 21 3 4 8 22 4 11 9 24 5 12 10 41 ์ž์—ฐ์ˆ˜ n์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, n์„ 124 programmers.co.kr ์˜ค๋Š˜์€ ์นด์นด์˜ค ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ๊ฐ€ ์•„๋‹ˆ๋ผ ์ผ๋ฐ˜ ์—ฐ์Šต ๋ฌธ์ œ๋ฅผ ์†Œ๊ฐœํ•˜๊ฒ ์Šต..

2020 ์นด์นด์˜ค ์‹ ์ž…์‚ฌ์› ์ฝ”๋”ฉํ…Œ์ŠคํŠธ - ๊ฐ€์‚ฌ ๊ฒ€์ƒ‰

https://programmers.co.kr/learn/courses/30/lessons/60060 ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ๊ฐ€์‚ฌ ๊ฒ€์ƒ‰ | ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค programmers.co.kr ์ด๋ฒˆ์—๋Š” ์นด์นด์˜ค ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ 4๋ฒˆ์งธ ๋ฌธ์ œ ํ’€์ด ์ž…๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋Š” 'Trie' ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ๋ฌธ์ž์—ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ํฌ๊ฒŒ KMP, Trie, Rabin-Karp, Aho-Corasick, Suffix Array ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. Trie๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฌธ์ œ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋Œ€ํšŒ๋‚˜ ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ์—์„œ ํ”ํžˆ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ๋Š” ์•„๋‹™๋‹ˆ๋‹ค. ์นด์นด์˜ค ์ฝ”ํ…Œ์—์„œ ์ด ๋ฌธ์ œ๋Š” ๋‘ ๋ฒˆ์ด๋‚˜ ๋‚˜์˜จ๊ฑธ ๋ณด๋ฉด ์ข€ ํŠน์ดํ•˜๊ธด ํ•ฉ๋‹ˆ๋‹ค. Trie ๋Š” ์—ฌ๋Ÿฌ ๋ฌธ์ž์—ด์„ ๋น ๋ฅด๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ๋„๋ก ์ €์žฅํ•˜๊ณ  ์žˆ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ ์ž…๋‹ˆ๋‹ค. ์–ด๋–ค ๋ฌธ์ž์—ด์ด ์žˆ๋‚˜ ์ฐพ์„ ๋•Œ ์•„์ฃผ ๋น ๋ฅด๊ฒŒ ์ฐพ์„..

2020 ์นด์นด์˜ค ์‹ ์ž…์‚ฌ์› ์ฝ”๋”ฉํ…Œ์ŠคํŠธ - ์ž๋ฌผ์‡ ์™€ ์—ด์‡ 

https://programmers.co.kr/learn/courses/30/lessons/60059 ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ์ž๋ฌผ์‡ ์™€ ์—ด์‡  | ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค [[0, 0, 0], [1, 0, 0], [0, 1, 1]] [[1, 1, 1], [1, 1, 0], [1, 0, 1]] true programmers.co.kr ์˜ค๋Š˜์€ 2020 ์นด์นด์˜ค ์‹ ์ž…์‚ฌ์› ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ 3๋ฒˆ์งธ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋Š” ๋ฌด๋ ค ์ •๋‹ต๋ฅ  7%๋ฅผ ์ž๋ž‘ํ•˜๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ์„ค๊ณ„๋ฅผ ์ƒ๊ฐํ•ด๋‚ด๊ธฐ ์กฐ๊ธˆ ํž˜๋“ค์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ƒฅ ๋จธ๋ฆฟ์†์œผ๋กœ ์‹œ๋ฎฌ๋ ˆ์ด์…˜์„ ๋Œ๋ ค๋ณด๋ฉด ๊ฝค๋‚˜ ๊ฐ„๋‹จํ•œ๊ฒŒ ๋ณด์ด๋Š”๋ฐ ์‹ค์ œ ๊ตฌํ˜„์— ๋“ค์–ด๊ฐ€๋ฉด ๋‚œํ•ดํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ์—์„œ ๋ฐฐ์šธ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์„ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. 1. ์ง€๋„๋ฅผ 90๋„ ๋Œ๋ ค์„œ ๊ธฐ์กด ์ฝ”๋“œ๋ฅผ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Œ์„ ์ธ์ง€ํ•˜์ž. 2. ์ง€๋„๋ฅผ ..

๊ทธ๋ž˜ํ”„๋ฅผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์œผ๋กœ ์–ด๋–ป๊ฒŒ ํ‘œํ˜„ํ•˜๋Š”๊ฐ€

์–ด๋ ค์šด ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ์—์„œ๋Š” ๊ทธ๋ž˜ํ”„ ๋ฌธ์ œ๊ฐ€ ํ•˜๋‚˜์”ฉ ์ถœ์ œ ๋ฉ๋‹ˆ๋‹ค. ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ ๊ทธ๋ž˜ํ”„ ๊ด€๋ จ ๋ฌธ์ œ๋ผ๊ณ  ํ•œ๋‹ค๋ฉด, ์•„๋ž˜ ์ˆ˜์ค€์—์„œ ๋‚˜์˜ต๋‹ˆ๋‹ค. 1. ์ตœ๋‹จ๊ฑฐ๋ฆฌ (ํ”Œ๋กœ์ด๋“œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ / ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜) 2. ํŠธ๋ฆฌ 3. ์‹ธ์ดํด ์ฐพ๊ธฐ 4. ์ตœ์†Œ ์ŠคํŒจ๋‹ ํŠธ๋ฆฌ ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ‘ธ๋Š”๋ฐ ๊ฐ€์žฅ ๋จผ์ € ํ•ด์•ผํ•  ๊ฒƒ์€ '๋…ธ๋“œ์™€ ๋…ธ๋“œ๋ฅผ ์—ฃ์ง€๋กœ ์ž‡๋Š” ๊ฒƒ' ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์—๋Š” ํฌ๊ฒŒ ๋‘ ๊ฐ€์ง€๊ฐ€ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. 1. adjacent matrix 2. adjacent list ์ด ๋‘ ๊ฐ€์ง€์— ๋Œ€ํ•ด์„œ ์‚ดํŽด๋ณผ ์˜ˆ์ •์ž…๋‹ˆ๋‹ค. ๊ทธ ์ „์— ์ผ๋ฐ˜์ ์œผ๋กœ ๊ทธ๋ž˜ํ”„์˜ ๋‘ ๊ฐ€์ง€ ์ข…๋ฅ˜์— ๋Œ€ํ•ด์„œ ๋ง์”€๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. 1. directed graph (๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„) : ๋ฌธ์ œ์—์„œ ์ฃผ์–ด์ง„ ๊ทธ๋ฆผ์— ํ™”์‚ดํ‘œ๊ฐ€ ์žˆ๊ฑฐ๋‚˜, ๋ฌธ์ œ ์„ค๋ช…์— 'a์—์„œ b๋กœ๋งŒ ๊ฐˆ ์ˆ˜ ์žˆ๋‹ค'๋ผ๋Š” ๋ง์ด ์žˆ์„ ๊ฒฝ์šฐ ..

algorithm/๊ธฐ์ดˆ 2019. 12. 16. 17:01
2020 ์นด์นด์˜ค ์‹ ์ž…์‚ฌ์› ์ฝ”๋”ฉํ…Œ์ŠคํŠธ - ๋ฌธ์ž์—ด ์••์ถ•

https://programmers.co.kr/learn/courses/30/lessons/60057 ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ๋ฌธ์ž์—ด ์••์ถ• | ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์ „๋ฌธ๊ฐ€๊ฐ€ ๋˜๊ณ  ์‹ถ์€ ์–ดํ”ผ์น˜๋Š” ๋ฌธ์ž์—ด์„ ์••์ถ•ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๊ณต๋ถ€๋ฅผ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ตœ๊ทผ์— ๋Œ€๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ ๊ฐ„๋‹จํ•œ ๋น„์†์‹ค ์••์ถ• ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๊ณต๋ถ€๋ฅผ ํ•˜๊ณ  ์žˆ๋Š”๋ฐ, ๋ฌธ์ž์—ด์—์„œ ๊ฐ™์€ ๊ฐ’์ด ์—ฐ์†ํ•ด์„œ ๋‚˜ํƒ€๋‚˜๋Š” ๊ฒƒ์„ ๊ทธ ๋ฌธ์ž์˜ ๊ฐœ์ˆ˜์™€ ๋ฐ˜๋ณต๋˜๋Š” ๊ฐ’์œผ๋กœ ํ‘œํ˜„ํ•˜์—ฌ ๋” ์งง์€ ๋ฌธ์ž์—ด๋กœ ์ค„์—ฌ์„œ ํ‘œํ˜„ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ณต๋ถ€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ„๋‹จํ•œ ์˜ˆ๋กœ aabbaccc์˜ ๊ฒฝ์šฐ 2a2ba3c(๋ฌธ์ž๊ฐ€ ๋ฐ˜๋ณต๋˜์ง€ ์•Š์•„ ํ•œ๋ฒˆ๋งŒ ๋‚˜ํƒ€๋‚œ ๊ฒฝ์šฐ 1์€ ์ƒ๋žตํ•จ)์™€ ๊ฐ™์ด ํ‘œํ˜„ํ•  ์ˆ˜ programmers.co.kr ์นด์นด์˜ค ์ฝ”๋”ฉํ…Œ์ŠคํŠธ๋Š” ์–ด๋ ต๊ธฐ๋กœ ์œ ๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๋‹น๋ถ„๊ฐ„ ์นด์นด์˜ค ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ํ’€์ด๋ฅผ..

์žฌ๊ท€ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•œ ์™„์ „ํƒ์ƒ‰์˜ ๊ธฐ๋ณธ์— ๋Œ€ํ•ด์„œ (2)

'์žฌ๊ท€ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•œ ์™„์ „ํƒ์ƒ‰์˜ ๊ธฐ๋ณธ์— ๋Œ€ํ•ด์„œ (1)' ์—์„œ๋Š” ๊ฐ„๋‹จํ•˜๊ฒŒ ์ˆซ์ž ์กฐํ•ฉ์„ ๊ณ ๋ฅด๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ์•Œ์•„ ๋ณด์•˜์Šต๋‹ˆ๋‹ค. ์‚ฌ์‹ค ์ด๊ฒƒ๋งŒ ์•Œ๋ฉด ๊ทธ๋ณด๋‹ค ์ข€ ๋” ์–ด๋ ค์šด ๋ฌธ์ œ๋“ค ํ‘ธ๋Š” ๋ชจ๋“  ์ค€๋น„๋Š” ๋๋‚ฌ์ง€๋งŒ, ์‘์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด๊ธฐ๋กœ ํ•ฉ์‹œ๋‹ค. https://www.acmicpc.net/problem/13302 13302๋ฒˆ: ๋ฆฌ์กฐํŠธ ์ˆ˜์˜์ด๋Š” ์—ฌ๋ฆ„๋ฐฉํ•™์„ ๋งž์ดํ•˜์—ฌ ๋งŽ์€ ๋†€์ด ์‹œ์„ค์ด ์žˆ๋Š” KOI ๋ฆฌ์กฐํŠธ์— ๋†€๋Ÿฌ๊ฐ€๋ ค๊ณ  ํ•œ๋‹ค. ๋ฆฌ์กฐํŠธ์˜ ํ•˜๋ฃจ ์ด์šฉ๊ถŒ์˜ ๊ฐ€๊ฒฉ์€ ๋งŒ์›์ด๋‹ค. ํ•˜์ง€๋งŒ ๋ฆฌ์กฐํŠธ์˜ ๊ทœ๋ชจ๋Š” ์ƒ์ƒ์„ ์ดˆ์›”ํ•˜์—ฌ ๋ชจ๋“  ์‹œ์„ค์„ ์ถฉ๋ถ„ํžˆ ์ฆ๊ธฐ๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ•˜๋ฃจ๋กœ๋Š” ํ„ฐ๋ฌด๋‹ˆ์—†์ด ๋ถ€์กฑํ•˜๋‹ค. ๊ทธ๋ž˜์„œ ๋งŽ์€ ์ด์šฉ๊ฐ๋“ค์€ 3์ผ ์ด์ƒ ์—ฐ์†์œผ๋กœ ์ด์šฉํ•˜๊ธฐ๋„ ํ•œ๋‹ค. KOI ๋ฆฌ์กฐํŠธ์—์„œ๋Š” 3์ผ ์—ฐ์† ์ด์šฉ๊ถŒ์„ ํ• ์ธ๋œ ๊ฐ€๊ฒฉ ์ด๋งŒ์˜ค์ฒœ์›์—, ์—ฐ์† 5์ผ๊ถŒ์€ ์‚ผ๋งŒ์น ์ฒœ์›์— ํŒ๋งค..

algorithm/๊ธฐ์ดˆ 2019. 12. 13. 00:38
BOJ - ์ฃผ์‚ฌ์œ„ ์œท๋†€์ด (17825) [2019 ์‚ผ์„ฑ SW ๊ธฐ์ถœ]

https://www.acmicpc.net/problem/17825 17825๋ฒˆ: ์ฃผ์‚ฌ์œ„ ์œท๋†€์ด ์ฒซ์งธ ์ค„์— ์ฃผ์‚ฌ์œ„์—์„œ ๋‚˜์˜ฌ ์ˆ˜ 10๊ฐœ๊ฐ€ ์ˆœ์„œ๋Œ€๋กœ ์ฃผ์–ด์ง„๋‹ค. www.acmicpc.net 2019๋…„ ํ•˜๋ฐ˜๊ธฐ ์‚ผ์„ฑ ๊ธฐ์ถœ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ์—์„œ ๊ฐ€์žฅ ์–ด๋ ค์šด ์ ์€ ๋ฐ”๋กœ '๋””์ž์ธ'์ž…๋‹ˆ๋‹ค. ๋„๋Œ€์ฒด ์ด ์œท๋†€์ด ํŒ์„ ์–ด๋–ป๊ฒŒ ๋””์ž์ธํ•ด์•ผ ํ•˜๋Š”๊ฐ€...? ์ฒ˜์Œ ํ•ด๋ณธ๋‹ค๋ฉด ๊ต‰์žฅํžˆ ๋‚œํ•ดํ•ฉ๋‹ˆ๋‹ค. 1. ์ •์‚ฌ๊ฐ ๋ฐฐ์—ด์„ ๋งŒ๋“ค์–ด ๋˜‘๊ฐ™์ด ๊ทธ๋ฆฐ๋‹ค. 2. ์›์„ ํ•˜๋‚˜์˜ ๋…ธ๋“œ๋ผ๊ณ  ์ƒ๊ฐํ•˜๊ณ , ๊ทธ๋ž˜ํ”„๋กœ ์ƒ๊ฐํ•˜์—ฌ ๋””์ž์ธํ•œ๋‹ค. ์•„๋ฌด๋ž˜๋„ directed graph๋กœ ์ƒ๊ฐํ•˜๊ณ  ๋””์ž์ธํ•˜๋Š”๊ฒŒ ํ›จ์”ฌ ์‰ฌ์›Œ ๋ณด์ž…๋‹ˆ๋‹ค. ๋‹ค๋งŒ, ํŒŒ๋ž€์ƒ‰ ๋…ธ๋“œ์—์„œ ์‹œ์ž‘ํ•  ๋•Œ, ๋‹ค๋ฅธ ๋ฐฉํ–ฅ์œผ๋กœ ๊ฐ€๊ฒŒ๋” ํ•ด์ฃผ๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๋…ธ๋“œ ๊ฐฏ์ˆ˜๊ฐ€ ์ด 33๊ฐœ ์ •๋„(?) ๋˜๋Š” ๊ฒƒ ๊ฐ™๋„ค์š”. ๋ญ ์ด์ •๋„๋ฉด..