๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

CS33

์ „์ž์„œ๋ช…๊ณผ ๋™์ž‘ ์›๋ฆฌ ์ „์ž์„œ๋ช… ์ „์ž์„œ๋ช…์€ ํ”„๋กœ๊ทธ๋žจ, ๋“œ๋ผ์ด๋ฒ„, ์„œ๋น„์Šค ๋“ฑ ์—ฌ๋Ÿฌ ๋งค์ฒด๋“ค์ด ์•ˆ์ „ํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์ธ์ฆํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ์„œ๋ช…์ด๋‹ค. ์•ˆ์ „ํ•œ ํŒŒ์ผ์ด๋‚˜ ๋“œ๋ผ์ด๋ฒ„์ž„์„ ์ธ์ฆํ•˜๊ธฐ ์œ„ํ•ด Code-Signing๊ณผ ๊ฐ™์€ ์ž‘์—…๋„ ์ „์ž์„œ๋ช…์ด๊ณ โ€ฆ ์›น์‚ฌ์ดํŠธ๊ฐ€ ์•ˆ์ „ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์ธ์ฆ ๋ฐ›๊ธฐ ์œ„ํ•ด SSL์„ ์ ์šฉํ•˜๋Š” ๊ฒƒ๋„ ์ „์ž์„œ๋ช…์ด๊ณ  ์ธ์ฆ์„œ์— Timestampingํ•˜๋Š” ๊ฒƒ๋„ ์ „์ž์„œ๋ช…์ด๋‹ค. ์ฆ‰, ์•ˆ์ „ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์ธ์ฆํ•˜๊ธฐ ์œ„ํ•œ ํ–‰์œ„๊ฐ€ ์ „์ž์„œ๋ช…์˜ ํฌ๊ด„์ ์ธ ์˜๋ฏธ์ด๋‹ค. ์œ„์˜ ์ด๋ฏธ์ง€๋Š” ํฌ๋กฌ ๋ธŒ๋ผ์šฐ์ €์—์„œ SSL์„ ์ ์šฉํ•œ ์ธ์ฆ์„œ์— ๋Œ€ํ•œ ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. https๊ฐ€ ์ ์šฉ๋˜์–ด ์ž๋ฌผ์‡  ์•„์ด์ฝ˜์ด ์žˆ์œผ๋ฉด SSL์ด ์ ์šฉ๋œ ์‚ฌ์ดํŠธ๋ผ๋Š” ํ‘œ์‹œ์ด๋‹ค. ์ธ์ฆ์„œ๋ฅผ ํ™•์ธํ•ด๋ณด๋ฉด ์ธ์ฆ์„œ 3๊ฐœ๊ฐ€ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š”๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋Š” ์ธ์ฆ์„œ ์ฒด์ธ์ด๋ผ๊ณ  ํ•˜๋Š”๋ฐ ๊ฐ€์žฅ ์ƒ๋‹จ์— .. 2021. 10. 6.
๋Œ€์นญํ‚ค / ๋น„๋Œ€์นญํ‚ค ์–‘๋ฐฉํ–ฅ ์•”ํ˜ธํ™” ๊ธฐ๋ฒ• ์–‘๋ฐฉํ–ฅ ์•”ํ˜ธํ™” ์ด์ „ ๊ธ€์—์„œ๋Š” ๋ดค๋˜ ๋‹จ๋ฐฉํ–ฅ ์•”ํ˜ธํ™” ๊ธฐ๋ฒ•๊ณผ ๋ฐ˜๋Œ€๋กœ... ๋Œ€์นญํ‚ค์™€ ๋น„๋Œ€์นญํ‚ค๋Š” ์–‘๋ฐฉํ–ฅ ์•”ํ˜ธํ™” ๋ฐฉ์‹ ์ด๋‹ค. Hash๋ฅผ ์‚ฌ์šฉํ•œ ๋‹จ๋ฐฉํ–ฅ ์•”ํ˜ธํ™” ๋ฐฉ์‹๊ณผ๋Š” ๋‹ค๋ฅด๊ฒŒ ์•”ํ˜ธํ™”๋œ ์•”ํ˜ธ๋ฌธ์„ ๋ณตํ˜ธํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ๋Œ€์นญํ‚ค : ์•”ํ˜ธํ™”, ๋ณตํ˜ธํ™”์— ์‚ฌ์šฉ๋˜๋Š” ํ‚ค๊ฐ€ ๋™์ผํ•˜๋‹ค. ๋น„๋Œ€์นญํ‚ค : ์•”ํ˜ธํ™”, ๋ณตํ˜ธํ™”์— ์‚ฌ์šฉ๋˜๋Š” ํ‚ค๊ฐ€ ๋‹ค๋ฅด๋‹ค. ์•”ํ˜ธํ™”์™€ ๋ณตํ˜ธํ™”์— ์‚ฌ์šฉ๋˜๋Š” ํ‚ค๋“ค์˜ ์‹ค์ฒด๋Š” ๋Œ€์ฒด๋กœ ํŒŒ์ผํ˜•ํƒœ๋กœ ๋˜์–ด์žˆ๊ณ  ์—ด์–ด๋ณด๋ฉด ์•”ํ˜ธํ™”๋œ ๊ฐ’์ด ์žˆ๋‹ค. ๋Œ€์นญํ‚ค ์•”ํ˜ธํ™” ์–‘๋ฐฉํ–ฅ ์•”ํ˜ธํ™” ๋ฐฉ์‹ ์ค‘์— ๋„๋ฆฌ ์‚ฌ์šฉํ•˜๋Š” ๋Œ€์นญํ‚ค๋Š” ์•”ํ˜ธํ™”์™€ ๋ณตํ˜ธํ™”์— ๊ฐ™์€ ์•”ํ˜ธ ํ‚ค๋ฅผ ์“ฐ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ๋น„๊ต ์˜ˆ์‹œ 2์ฐจ ์„ธ๊ณ„๋Œ€์ „ ๋•Œ ๋…์ผ ์ŠคํŒŒ์ด๋“ค์€ ๋ชจ์Šค๋ถ€ํ˜ธ๋ฅผ ์ด์šฉํ•ด์„œ ๋ฏผ๊ฐํ•œ ๊ตฐ์‚ฌ ์ •๋ณด๋ฅผ ์•”ํ˜ธํ™”ํ•ด์„œ ์„œ๋กœ ์ „๋‹ฌ์„ ํ–ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ์ค‘๊ฐ„์— ์ด ๋ชจ์Šค ๋ถ€ํ˜ธ๋กœ ์•”ํ˜ธํ™”๋œ ์ •๋ณด๋ฅผ ๊ฐ€๋กœ์ฑˆ๋‹ค๊ณ  ํ•˜๋”๋ผ.. 2021. 10. 6.
Hash ๋‹จ๋ฐฉํ–ฅ ์•”ํ˜ธํ™” ๊ธฐ๋ฒ• Hash ํ•ด์‹œ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๋Š” ๊ธฐ๋ฒ• ์ค‘ ํ•˜๋‚˜์ด๋‹ค. ํ•ด์‹œ์˜ ๊ฐ€์žฅ ํฐ ํŠน์ง•์€ ๋ฐ์ดํ„ฐ์˜ ํฌ๊ธฐ์™€ ์ƒ๊ด€์—†์ดโ€ฆ ํ•ด์‹œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ†ตํ•ด ์–ป๋Š” ํ•ด์‹œ๊ฐ’์€ ํ•ญ์ƒ ๊ณ ์ •๋œ ๊ธธ์ด๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ์ด๋Ÿฐ ํŠน์ง•์„ ๊ฐ–๊ณ  ๋ณด์•ˆ์ ์ธ ๊ด€์ ์—์„œ๋Š” ๋‹จ๋ฐฉํ–ฅ ์•”ํ˜ธํ™”์œผ๋กœ ์‚ฌ์šฉ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์šฉ์–ด ์ •๋ฆฌ ์šฉ์–ด ์„ค๋ช… ํ•ด์‹œ ํ•จ์ˆ˜(์•Œ๊ณ ๋ฆฌ์ฆ˜) ์ž„์˜์˜ ํฌ๊ธฐ์˜ ๋ฐ์ดํ„ฐ๋ฅผ input๊ฐ’์œผ๋กœ ๊ณ ์ •๋œ ๊ธธ์ด์˜ output(ํ•ด์‹œ๊ฐ’)์œผ๋กœ ๋ฐ˜ํ™˜ํ•ด์ฃผ๋Š” ํ•จ์ˆ˜ ํ•ด์‹œ ๊ฐ’ ํ•ด์‹œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ์˜ํ•ด ์–ป์€ ๋ฐ์ดํ„ฐ. ํ•ด์‹œ์ฝ”๋“œ, ํ•ด์‹œ ์ฒดํฌ์„ฌ ์ด๋ผ๊ณ ๋„ ํ•œ๋‹ค. ํ•ด์‹ฑ ํ•ด์‹œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์—์„œ ํ•ด์‹œ๊ฐ’์„ ๋งคํ•‘ํ•˜๋Š” ๊ณผ์ • ํ•ด์‹œ์˜ ํŠน์ง• ํ•ด์‹œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์•„๋ž˜์™€ ๊ฐ™์€ ๋ช‡๊ฐ€์ง€ ์ค‘์š” ํŠน์ง•๋“ค์ด ์žˆ๋‹ค. ๊ณ ์ •๋œ ๊ธธ์ด hash(10GB Data) = '84960594d762e2534b56c2e8f8b2a3f6770e1ae8e13d255.. 2021. 10. 6.
๋ฐฑ์ค€ 2839 ํŒŒ์ด์ฌ - ์„คํƒ• ๋ฐฐ๋‹ฌ - ๋™์  ๊ณ„ํš๋ฒ• ๋ฐฑ์ค€ 2839 ํŒŒ์ด์ฌ https://www.acmicpc.net/problem/2839 2839๋ฒˆ: ์„คํƒ• ๋ฐฐ๋‹ฌ ์ƒ๊ทผ์ด๋Š” ์š”์ฆ˜ ์„คํƒ•๊ณต์žฅ์—์„œ ์„คํƒ•์„ ๋ฐฐ๋‹ฌํ•˜๊ณ  ์žˆ๋‹ค. ์ƒ๊ทผ์ด๋Š” ์ง€๊ธˆ ์‚ฌํƒ•๊ฐ€๊ฒŒ์— ์„คํƒ•์„ ์ •ํ™•ํ•˜๊ฒŒ Nํ‚ฌ๋กœ๊ทธ๋žจ์„ ๋ฐฐ๋‹ฌํ•ด์•ผ ํ•œ๋‹ค. ์„คํƒ•๊ณต์žฅ์—์„œ ๋งŒ๋“œ๋Š” ์„คํƒ•์€ ๋ด‰์ง€์— ๋‹ด๊ฒจ์ ธ ์žˆ๋‹ค. ๋ด‰์ง€๋Š” 3ํ‚ฌ๋กœ๊ทธ www.acmicpc.net Nํ‚ฌ๋กœ๊ทธ๋žจ์˜ ์„คํƒ•์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, ์„คํƒ•์„ ๋‹ด๊ธฐ ์œ„ํ•ด 3ํ‚ค๋กœ๊ทธ๋žจ๊ณผ 5ํ‚ค๋กœ๊ทธ๋žจ ๋ด‰์ง€๋กœ ๊ฐ€์žฅ ์ ์€ ์–‘์˜ ๋ด‰์ง€๋ฅผ ๋งŒ๋“ค์–ด ๋‚ด๋Š” ๋ฐฉ๋ฒ•์„ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ์ด ๋ฌธ์ œ๋Š” ๊ณ„์‚ฐ ํšŸ์ˆ˜๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•ด ์ด์ „์— ๊ณ„์‚ฐํ–ˆ๋˜ ๊ฐ’์„ ๊ธฐ์–ตํ•ด๋’€๋‹ค๊ฐ€ ์žฌ์‚ฌ์šฉํ•˜๋Š” ๋ฉ”๋ชจ์ด์ œ์ด์…˜์„ ํ™œ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ ๋‹นํ•˜๋‹ค๊ณ  ํŒ๋‹จํ–ˆ์Šต๋‹ˆ๋‹ค. 3 ~ Nํ‚ฌ๋กœ๊ทธ๋žจ๊นŒ์ง€ ์ž‘์€ ์ˆซ์ž๋ถ€ํ„ฐ... ๊ฐ๊ฐ ๊ฐ€์žฅ ์ ์€ ์–‘์˜ ๋ด‰์ง€๋ฅผ ์ €์žฅํ•ด๋‘๋ฉด... ํ•ด๋‹น ๊ฐ’๋ณด๋‹ค 3, 5 ํฐ .. 2021. 10. 5.
[๋ฐฑ์ค€ 11724 ์—ฐ๊ฒฐ ์š”์†Œ์˜ ๊ฐœ์ˆ˜] ํŒŒ์ด์ฌ BFS ๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰ ํ’€์ด ์—ฐ๊ฒฐ ์š”์†Œ์˜ ๊ฐœ์ˆ˜ ๋ฌธ์ œ 11724๋ฒˆ: ์—ฐ๊ฒฐ ์š”์†Œ์˜ ๊ฐœ์ˆ˜ ์ฒซ์งธ ์ค„์— ์ •์ ์˜ ๊ฐœ์ˆ˜ N๊ณผ ๊ฐ„์„ ์˜ ๊ฐœ์ˆ˜ M์ด ์ฃผ์–ด์ง„๋‹ค. (1 โ‰ค N โ‰ค 1,000, 0 โ‰ค M โ‰ค Nร—(N-1)/2) ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ M๊ฐœ์˜ ์ค„์— ๊ฐ„์„ ์˜ ์–‘ ๋์  u์™€ v๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. (1 โ‰ค u, v โ‰ค N, u โ‰  v) ๊ฐ™์€ ๊ฐ„์„ ์€ ํ•œ ๋ฒˆ๋งŒ ์ฃผ๏ฟฝ๏ฟฝ www.acmicpc.net ๋ฑกํ–ฅ ์—†์€ ์–‘๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ ์—ฐ๊ฒฐ ์š”์†Œ๋ฅผ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ๋ฌธ์ œ ํ’€์ด ์—ฐ๊ฒฐ ์š”์†Œ๋ฅผ ๊ตฌํ•˜๋Š” ๊ฒƒ์€ ์ฆ‰ ๋ช‡๊ฐœ์˜ ๊ตฌ์—ญ์œผ๋กœ ๋‚˜๋ˆ„์–ด์ ธ ์žˆ๋Š”์ง€ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ž˜ํ”„๋ฅผ ์œ„์™€ ๊ฐ™์ด ํ‘œํ˜„ํ–ˆ์„๋•Œ 2๊ฐœ์˜ ์˜์—ญ์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. DFS, BFS ๋ชจ๋‘ ์‚ฌ์šฉํ•ด์„œ ํ’€์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰ BFS๋กœ ๋ฌธ์ œ๋ฅผ ํ’€์–ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. 1. ๊ทธ๋ž˜ํ”„ ์—ฐ๊ฒฐ ์ •๋ณด์šฉ ํ–‰๋ ฌ ์ƒ์„ฑ 2. BFS.. 2020. 9. 28.
[๋ฐฑ์ค€ 1012 ์œ ๊ธฐ๋† ๋ฐฐ์ถ”] ํŒŒ์ด์ฌ BFS ๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰ ํ’€์ด ์œ ๊ธฐ๋† ๋ฐฐ์ถ” ๋ฌธ์ œ 1012๋ฒˆ: ์œ ๊ธฐ๋† ๋ฐฐ์ถ” ์ฐจ์„ธ๋Œ€ ์˜๋†์ธ ํ•œ๋‚˜๋Š” ๊ฐ•์›๋„ ๊ณ ๋žญ์ง€์—์„œ ์œ ๊ธฐ๋† ๋ฐฐ์ถ”๋ฅผ ์žฌ๋ฐฐํ•˜๊ธฐ๋กœ ํ•˜์˜€๋‹ค. ๋†์•ฝ์„ ์“ฐ์ง€ ์•Š๊ณ  ๋ฐฐ์ถ”๋ฅผ ์žฌ๋ฐฐํ•˜๋ ค๋ฉด ๋ฐฐ์ถ”๋ฅผ ํ•ด์ถฉ์œผ๋กœ๋ถ€ํ„ฐ ๋ณดํ˜ธํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ํ•œ๋‚˜๋Š” ํ•ด์ถฉ ๋ฐฉ์ง€์— ๏ฟฝ www.acmicpc.net 2์ฐจ์› ๋ฐฐ์—ด์˜ ์œ ๊ธฐ๋† ๋ฐฐ์ถ”๋ฐญ์ด ์ฃผ์–ด์ง€๊ณ  0(๋•…) ๊ณผ 1(๋ฐฐ์ถ” ์‹ฌ์–ด์ ธ ์žˆ๋Š” ๋•…)๋กœ ๋ฐ์ดํ„ฐ๊ฐ€ ๊ตฌ๋ถ„๋ฉ๋‹ˆ๋‹ค. ๋ฐฐ์ถ”ํฐ ์ง€๋ ์ด๋ฅผ ๋ฐฐ์ถ”์— ์„œ์‹ํ•˜๊ฒŒ ํ•˜๋ฉด ์‚ฌ๋ฐฉ๋ฉด์œผ๋กœ ์ด๋™์ด ๊ฐ€๋Šฅํ•˜์—ฌ ๋‹ค๋ฅธ ๋ฐฐ์ถ”๋ฅผ ํ•ด์ถฉ์œผ๋กœ๋ถ€ํ„ฐ ๋ณดํ˜ธ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค. ํ•„์š”ํ•œ ๋ฐฐ์ถ”ํฐ ์ง€๋ ์ด์˜ ๋งˆ๋ฆฌ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ์ž…๋ ฅ ๋ฐ›๋Š” ์ •๋ณด๋กœ ์•„๋ž˜์™€ ๊ฐ™์ด ๋ฐฐ์ถ” ๋ฐญ์„ 2์ฐจ์› ๋ฐฐ์—ด ํ˜•ํƒœ๋กœ ๋งŒ๋“ค์–ด ์ฃผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์ œ ํ’€์ด 4๋ฐฉ๋ฉด์œผ๋กœ ์ด๋™์ด ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ ๊ฐ ์˜์—ญ๋‹น ํ•œ๋งˆ๋ฆฌ์˜ ๋ฐฐ์ถ”ํฐ ์ง€๋ ์ด๋ฅผ ๋ฐฐ์น˜ํ•˜๋ฉด ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, .. 2020. 9. 28.
[๋ฐฑ์ค€ 10026 ์ ๋ก์ƒ‰์•ฝ] ํŒŒ์ด์ฌ BFS ๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰ ํ’€์ด ์ ๋ก์ƒ‰์•ฝ ๋ฌธ์ œ 10026๋ฒˆ: ์ ๋ก์ƒ‰์•ฝ ์ ๋ก์ƒ‰์•ฝ์€ ๋นจ๊ฐ„์ƒ‰๊ณผ ์ดˆ๋ก์ƒ‰์˜ ์ฐจ์ด๋ฅผ ๊ฑฐ์˜ ๋Š๋ผ์ง€ ๋ชปํ•œ๋‹ค. ๋”ฐ๋ผ์„œ, ์ ๋ก์ƒ‰์•ฝ์ธ ์‚ฌ๋žŒ์ด ๋ณด๋Š” ๊ทธ๋ฆผ์€ ์•„๋‹Œ ์‚ฌ๋žŒ์ด ๋ณด๋Š” ๊ทธ๋ฆผ๊ณผ๋Š” ์ข€ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ๋‹ค. ํฌ๊ธฐ๊ฐ€ Nร—N์ธ ๊ทธ๋ฆฌ๋“œ์˜ ๊ฐ ์นธ์— R(๋นจ๊ฐ•), G(์ดˆ๋ก) www.acmicpc.net RGB 3๊ฐ€์ง€ ๋ฌธ์ž๋กœ ์ด๋ฃจ์–ด์ง„ N * N ๋ณด๋“œํŒ์ด ์ฃผ์–ด์งˆ๋•Œ ์ผ๋ฐ˜์‚ฌ๋žŒ๊ณผ ์ ๋ก์ƒ‰์•ฝ์ธ ์‚ฌ๋žŒ์ด ๋ณด๋Š” ๊ตฌ์—ญ์˜ ์ˆ˜๋ฅผ ๊ฐ๊ฐ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ์ ๋ก์ƒ‰์•ฝ์€ R๊ณผ G๋ฅผ ํ•˜๋‚˜์˜ ์ƒ‰์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค. ์ฆ‰, ์•„๋ž˜์™€ ๊ฐ™์ด ๊ตฌ์—ญ์ด ๋‚˜๋‰˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋ฌธ์ œ ํ’€์ด 2์ฐจ์› ๋ฐฐ์—ด์˜ ์˜์—ญ์„ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ๋กœ BFS ๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•ด์„œ ํ’€๋ฉด ๋ ๊ฒƒ์œผ๋กœ ํŒ๋‹จํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹จ, 2๊ฐ€์ง€ ๊ฒฝ์šฐ๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ ๋•Œ๋ฌธ์— 2๊ฐ€์ง€ ๋ฒ„์ „์˜ ๋ฐฐ์—ด์„ ๋งŒ๋“ค์–ด์ฃผ๊ณ  ํƒ์ƒ‰ํ•˜๋Š” ๋ฐฉ์‹์„ ์„ ํƒํ–ˆ์Šต๋‹ˆ๋‹ค. N์˜ ์ตœ๋Œ€ .. 2020. 9. 27.
๋ฐฑ์ค€ 14500๋ฒˆ ํ…ŒํŠธ๋กœ๋ฏธ๋…ธ ์™„์ „ํƒ์ƒ‰(brute-force) ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ :: ์ฝ”๋“œ์ž๋ชฝ [๋ฐฑ์ค€] 14500๋ฒˆ ํ…ŒํŠธ๋กœ๋ฏธ๋…ธ 14500๋ฒˆ: ํ…ŒํŠธ๋กœ๋ฏธ๋…ธ ํด๋ฆฌ์˜ค๋ฏธ๋…ธ๋ž€ ํฌ๊ธฐ๊ฐ€ 1ร—1์ธ ์ •์‚ฌ๊ฐํ˜•์„ ์—ฌ๋Ÿฌ ๊ฐœ ์ด์–ด์„œ ๋ถ™์ธ ๋„ํ˜•์ด๋ฉฐ, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•ด์•ผ ํ•œ๋‹ค. ์ •์‚ฌ๊ฐํ˜•์€ ์„œ๋กœ ๊ฒน์น˜๋ฉด ์•ˆ ๋œ๋‹ค. ๋„ํ˜•์€ ๋ชจ๋‘ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์–ด์•ผ ํ•œ๋‹ค. ์ •์‚ฌ๊ฐํ˜•์˜ ๋ณ€๋ผ๋ฆฌ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์–ด์•ผ ํ•œ๋‹ค. ์ฆ‰, ๊ผญ์ง“์ ๊ณผ ๊ผญ์ง“์ ๋งŒ ๋งž๋‹ฟ์•„ ์žˆ์œผ๋ฉด ์•ˆ ๋œ๋‹ค. ์ •์‚ฌ๊ฐํ˜• 4๊ฐœ๋ฅผ ์ด์–ด ๋ถ™์ธ ํด๋ฆฌ์˜ค๋ฏธ๋…ธ๋Š” ํ…ŒํŠธ๋กœ๋ฏธ๋…ธ๋ผ๊ณ  ํ•˜๋ฉฐ, ๋‹ค์Œ๊ณผ ๊ฐ™์€ 5๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. ์•„๋ฆ„์ด๋Š” ํฌ๊ธฐ๊ฐ€ Nร—M์ธ ์ข…์ด ์œ„์— ํ…ŒํŠธ๋กœ๋ฏธ๋…ธ ํ•˜๋‚˜๋ฅผ ๋†“์œผ๋ ค๊ณ  ํ•œ๋‹ค. ์ข…์ด๋Š” 1ร—1 ํฌ๊ธฐ์˜ ์นธ์œผ๋กœ ๋‚˜๋ˆ„ www.acmicpc.net ํ’€์ด ์ด๋Ÿฐ ๋ธ”๋ก ํ˜•ํƒœ์˜ ๋ฌธ์ œ๊ฐ€ ๋‚˜์˜ค๋ฉด ์‹ค์ œ๋กœ ๋„ํ˜•์„ ๊ทธ๋ ค๋ณด๋ฉด์„œ ๋ฌธ์ œ๋ฅผ ํ‘ธ๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ•์ธ ๊ฒƒ ๊ฐ™๋‹ค. ๋จผ์ € N*M ํฌ๊ธฐ์˜ ์ข…์ด ์œ„์— ๋ธ”๋ก ํ•˜๋‚˜๋งŒ ๋†“๋Š”๋‹ค๊ณ  ํ–ˆ์œผ๋‹ˆ.. 2019. 12. 23.
๋ฐฑ์ค€ 2309๋ฒˆ ์ผ๊ณฑ ๋‚œ์Ÿ์ด ์™„์ „ํƒ์ƒ‰(brute-force) ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ :: ์ฝ”๋“œ ์ž๋ชฝ ์™„์ „ ํƒ์ƒ‰ Brute-Force ์™„์ „ ํƒ์ƒ‰์€ ๋ง ๊ทธ๋Œ€๋กœ ๋ชจ๋“  ๊ฒฝ์šฐ์˜์ˆ˜๋ฅผ ์ผ์ผ์ด ํƒ์ƒ‰ํ•˜์—ฌ ์ •๋‹ต์„ ์ฐพ์•„๋‚ด๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ๊ฐ€๋Šฅํ•œ ๋ฐฉ๋ฒ•์„ ๋ชจ๋‘ ํ™•์ธํ•˜์—ฌ ์ •ํ™•๋„๊ฐ€ ๋†’๊ณ  ๊ฐ•๋ ฅํ•œ ๋ฐฉ์‹์ด์ง€๋งŒ, ์‹œ๊ฐ„์€ ๋‹ค์†Œ ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š” ๋‹จ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋ธŒ๋ฃจํŠธ ํฌ์Šค ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜๊ธฐ ์ „์— ๋ฌธ์ œ์˜ ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๋จผ์ € ๊ณ„์‚ฐ์„ ํ•ด๋ด์•ผํ•œ๋‹ค. ์ปดํ“จํ„ฐ๊ฐ€ 1์ดˆ์— ๋Œ€๋žต 1์–ต ๋ฒˆ ์ •๋„์˜ ์ผ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค. ํšจ์œจ์„ฑ์„ ๊ณ ๋ คํ•˜์—ฌ ๋ธŒ๋ฃจํŠธ ํฌ์Šค ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ๋ฌธ์ œ๋ฅผ ์ ‘๊ทผํ•  ๊ฒฝ์šฐ ๊ธฐ์ค€์€ ์ •ํ•ด์ฃผ๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด "์ฒœ๋งŒ(10,000,000) ๊ฑด ์ดํ•˜์˜ ๊ฒฝ์šฐ ์ˆ˜๊ฐ€ ์กด์žฌํ•  ๋•Œ๋งŒ ๋ธŒ๋ฃจํŠธ ํฌํŠธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜๊ฒ ๋‹ค."๋ผ๋Š” ๊ธฐ์ค€์„ ์ •ํ•˜๊ณ  ๋ฌธ์ œ๋ฅผ ์ ‘๊ทผํ•˜๋Š” ๊ฒƒ์ด ์œ ๋ฆฌํ•˜๋‹ค. [๋ฐฑ์ค€] 2309๋ฒˆ ์ผ๊ณฑ ๋‚œ์Ÿ์ด 2309๋ฒˆ: ์ผ๊ณฑ ๋‚œ์Ÿ์ด ์•„ํ™‰ ๊ฐœ์˜ ์ค„์— ๊ฑธ.. 2019. 12. 23.
์†Œ์ˆ˜(Prime Number) ๊ตฌํ•˜๊ธฐ ํšจ์œจ์  ์•Œ๊ณ ๋ฆฌ์ฆ˜ :: ์ฝ”๋“œ์ž๋ชฝ ์†Œ์ˆ˜(Prime Number) ์†Œ์ˆ˜๋Š” ์ž์‹ ๋ณด๋‹ค ์ž‘์€ ๋‘๊ฐœ์˜ ์ž์—ฐ์ˆ˜๋ฅผ ๊ณฑํ•˜์—ฌ ๋งŒ๋“ค ์ˆ˜ ์—†๋Š” 1๋ณด๋‹ค ํฐ ์ž์—ฐ์ˆ˜์ด๋‹ค. ex) 5๋Š” 5*1 ๋˜๋Š” 1*5๋กœ ์ˆ˜๋ฅผ ๊ณฑํ•ฉ ๊ฒฐ๊ณผ๋ฅผ ์ ๋Š” ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์ด ๊ทธ ์ˆ˜ ์ž์‹ ์„ ํฌํ•จํ•˜๊ธฐ ๋•Œ๋ฌธ์— 5๋Š” ์†Œ์ˆ˜์ด๋‹ค. ์†Œ์ˆ˜ (์ˆ˜๋ก ) - ์œ„ํ‚ค๋ฐฑ๊ณผ, ์šฐ๋ฆฌ ๋ชจ๋‘์˜ ๋ฐฑ๊ณผ์‚ฌ์ „ ์œ„ํ‚ค๋ฐฑ๊ณผ, ์šฐ๋ฆฌ ๋ชจ๋‘์˜ ๋ฐฑ๊ณผ์‚ฌ์ „. ์ขŒ์ธก์€ ์†Œ์ˆ˜, ์šฐ์ธก์€ ํ•ฉ์„ฑ์ˆ˜. ์†Œ์ˆ˜๋ž€ ์ž์‹ ๋ณด๋‹ค ์ž‘์€ ๋‘ ์ž์—ฐ์ˆ˜๋ฅผ ๊ณฑํ•˜์—ฌ ๋งŒ๋“ค ์ˆ˜ ์—†๋Š” 1๋ณด๋‹ค ํฐ ์ž์—ฐ์ˆ˜์ด๋‹ค. ์†Œ์ˆ˜(็ด ๆ•ธ, ๋ฐœ์Œ: [์†Œ์‘ค], ๋ฌธํ™”์–ด: ์”จ์ˆ˜, ์˜์–ด: prime number)๋Š” ์ž์‹ ๋ณด๋‹ค ์ž‘์€ ๋‘ ๊ฐœ์˜ ์ž์—ฐ์ˆ˜๋ฅผ ๊ณฑํ•˜์—ฌ ๋งŒ๋“ค ์ˆ˜ ์—†๋Š” 1๋ณด๋‹ค ํฐ ์ž์—ฐ์ˆ˜์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, 5๋Š” 1x5 ๋˜๋Š” 5x1๋กœ ์ˆ˜๋ฅผ ๊ณฑํ•œ ๊ฒฐ๊ณผ๋ฅผ ์ ๋Š” ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์ด ๊ทธ ์ˆ˜ ์ž์‹ ์„ ํฌํ•จํ•˜๊ธฐ ๋•Œ๋ฌธ์— 5๋Š” ์†Œ์ˆ˜์ด๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ .. 2019. 12. 22.
์ตœ๋Œ€๊ณต์•ฝ์ˆ˜(GCD), ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜(LCM) ๊ตฌํ•˜๊ธฐ ์œ ํด๋ฆฌ๋“œ ํ˜ธ์ œ๋ฒ• ์•Œ๊ณ ๋ฆฌ์ฆ˜ :: ์ฝ”๋“œ์ž๋ชฝ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜ GCD(Greatest Common Divisor) ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜๋Š” ๋‘ ์ž์—ฐ์ˆ˜์˜ ๊ณตํ†ต๋œ ์•ฝ์ˆ˜ ์ค‘ ๊ฐ€์žฅ ํฐ ์ˆ˜๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ex) 72 ์™€ 30์˜ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜๋Š” 6์ด๋‹ค. ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜ LCM(Least Common Multiple) ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜๋Š” ๋‘ ์ž์—ฐ์ˆ˜์˜ ๊ณตํ†ต๋œ ๋ฐฐ์ˆ˜ ์ค‘ ๊ฐ€์žฅ ์ž‘์€ ์ˆ˜๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜ = ๋‘ ์ž์—ฐ์ˆ˜์˜ ๊ณฑ / ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜ ex) 72 ์™€ 30์˜ ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜๋Š” 360์ด๋‹ค. ์œ ํด๋ฆฌ๋“œ ํ˜ธ์ œ๋ฒ•(Euclidean Algorithm) 2๊ฐœ์˜ ์ž์—ฐ์ˆ˜๋ฅผ ๋ฐ›์•„ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜๋ฅผ ๋ฐ›๊ธฐ ์œ„ํ•ด 2๋ถ€ํ„ฐ ๋‘ ์ž์—ฐ์ˆ˜ ์ค‘ ์ž‘์€ ์ž์—ฐ์ˆ˜๊นŒ์ง€ ๋ชจ๋‘ ๋‚˜๋ˆ„์–ด๋ณด๋ฉด์„œ ๊ฐ€์žฅ ํฐ ๊ณต์•ฝ์ˆ˜๋ฅผ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค. ์œ„์™€ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ๋ฌธ์ œ๋ฅผ ํ’€๋ฉด ์‹œ๊ฐ„๋ณต์žก๋„๋Š” O(N)์ด ๋œ๋‹ค. ๋‚˜์œ ๋ฐฉ๋ฒ•์€ ์•„๋‹ˆ์ง€๋งŒ ํšจ์œจ์„ ๋†’์ด๊ธฐ ์œ„ํ•ด ์œ ํด๋ฆฌ๋“œ ํ˜ธ์ œ๋ฒ•์ด๋ž€ ์•Œ๊ณ ๋ฆฌ์ฆ˜.. 2019. 12. 22.
JAVA ์ž๋ฐ”๋กœ ๋น„ํŠธ์—ฐ์‚ฐ ์•Œ์•„๋ณด๊ธฐ :: ์ฝ”๋“œ ์ž๋ชฝ ๋น„ํŠธ์—ฐ์‚ฐ์ž ๋น„ํŠธ์—ฐ์‚ฐ์€ 2์ง„์ˆ˜ํ˜•ํƒœ์˜ ์ˆซ์ž 0๊ณผ 1๋กœ ํ•  ์ˆ˜ ์žˆ๋Š” ์—ฐ์‚ฐ์ด๋‹ค. ์ž๋ฐ”์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์—ฐ์‚ฐ 6๊ฐ€์ง€๋ฅผ ์•Œ์•„๋ณด์ž.๋น„ํŠธ์—ฐ์‚ฐ์ž๋ฅผ ์ž˜ ์‚ฌ์šฉํ•˜๋ฉด ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์„ ๋ฟ๋”๋Ÿฌ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ์ค„์—ฌ ์ฃผ๋Š” ํšจ๊ณผ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์™ผ์ชฝ ์‹œํ”„ํŠธ( y ํ˜•์‹์œผ๋กœ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋˜๊ณ  x์˜ ๋น„ํŠธ๋ฅผ ์™ผ์ชฝ์œผ๋กœ y์นธ ์ด๋™์‹œํ‚จ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.ex) 1111 >> 2 = 111111(15) ์ด 11(3)๋กœ ๋ณ€ํ˜•๋˜๋Š” ๊ฒƒ์„ ๋ณด๋ฉด x / 2^y ์œผ๋กœ ๋‚˜๋จธ์ง€๋ฅผ ์ œ์™ธํ•œ ๋ชซ์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ๋น„ํŠธ์˜ ๋ณด์ˆ˜(~)์ด์ง„์ˆ˜์˜ ๋ชจ๋“  ๋น„ํŠธ๋ฅผ ๋ฐ˜๋Œ€๋กœ ๋ฐ”๊พผ๋‹ค. 0 ์ด๋ฉด 1, 1์ด๋ฉด 0์œผ๋กœ ๋ฐ”๊พผ๋‹ค. ๋ณด์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ 32์ž๋ฆฌ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.~x ํ˜•์‹์œผ๋กœ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  x์˜ ๋ณด์ˆ˜๋ฅผ ๊ตฌํ•˜๋ผ๋Š” ์˜๋ฏธ์ด๋‹ค.ex) ~01.. 2019. 11. 23.
[๋ฐฐ์—ด] ๋ถ€๋ถ„์ง‘ํ•ฉ ๊ด€๋ จ ๋ฌธ์ œ ๋น„ํŠธ์—ฐ์‚ฐ์œผ๋กœ ํ’€๊ธฐ :: ์ฝ”๋“œ์ž๋ชฝ ๋ถ€๋ถ„์ง‘ํ•ฉ ๊ตฌํ•˜๊ธฐ ๋ฐฐ์—ด์ด ์ฃผ์–ด์กŒ์„๋•Œ ๋ถ€๋ถ„์ง‘ํ•ฉ์„ ๊ตฌํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด๋ณด์ž. ์•„๋ž˜ ๊ธฐ๋ณธ ๋ฌธ์ œ๋ฅผ ์„ค๋ช… ๋ฐ ์ฝ”๋“œ์ƒ˜ํ”Œ์„ ํ™•์ธํ•˜์ง€ ์•Š๊ณ  ๋จผ์ € ํ’€์–ด๋ณด์ž. ๊ธฐ๋ณธ ๋ฌธ์ œ {1, 2, 3, 4, -1, -5} ์œ„ ๋ฐฐ์—ด์—์„œ ํ™€์ˆ˜๋กœ ๊ตฌ์„ฑ๋œ ๋ถ€๋ถ„ ์ง‘ํ•ฉ์„ ๋ชจ๋‘ ์ถœ๋ ฅ ํ•˜์‹œ์˜ค. ๊ฐ„๋‹จํ•ด ๋ณด์ด์ง€๋งŒ ๋น„ํŠธ์—ฐ์‚ฐ์„ ์ดํ•ดํ•˜์ง€ ๋ชปํ•˜๋ฉด ์ƒ๊ฐ๋ณด๋‹ค ์–ด๋ ค์šด ๋ฌธ์ œ์ด๋‹ค. ์œ„ ๋ฌธ์ œ๋ฅผ ์™„์ „ํƒ์ƒ‰ ํ˜น์€ ๋ฐฐ์—ด์˜ ์œ„์น˜๋ฅผ ์ด์šฉํ•ด์„œ ํ’€๊ฒ ๋‹ค๊ณ  ์ ‘๊ทผํ–ˆ์„๊ฒƒ์ด๋ผ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์™„์ „ํƒ์ƒ‰ ๋ฐฉ๋ฒ•์œผ๋กœ ํ’€๋ ค๊ณ  ํ•˜๋‹ค๋ณด๋‹ˆ for๋ฌธ์„ ์ค‘์ฒฉํ•ด์„œ ์‚ฌ์šฉํ•˜๋ฉด ๋ฐฐ์—ด์ด ์ปค์งˆ์ˆ˜๋ก ํšจ์œจ๋„ ๋–จ์–ด์ง€๊ณ  ์‹œ๊ฐ„๋ณต์žก๋„๊ฐ€ ์ œ๊ณฑ์œผ๋กœ ๋Š˜์–ด๋‚˜๋Š” ๊ฒƒ์„ ํ™•์ธํ–ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ ๋ฐฐ์—ด์˜ ์œ„์น˜๋ฅผ ์ด์šฉํ•ด์„œ ํ‘ธ๋Š” ๋ฐฉ๋ฒ•์„ ์ƒ๊ฐํ•˜๋‹ค๋ณด๋‹ˆ 0๊ณผ 1์„ ์ด์šฉํ•˜์—ฌ ์ž๋ฆฌ๋ฅผ ํ‘œ์‹œํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ๋– ์˜ค๋ฅด๊ฒŒ ๋ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์œ„์˜ ๋ฌธ์ œ ์ฒ˜๋Ÿผ ๋ถ€๋ถ„์ง‘ํ•ฉ์„ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์—์„œ๋Š”.. 2019. 11. 22.