๐Ÿงฉ Problem Solving

๐Ÿงฉ Problem Solving/[๋ฐฑ์ค€]

[๋ฐฑ์ค€] 9375 ํŒจ์…˜์™• ์‹ ํ•ด๋นˆ (python ํŒŒ์ด์ฌ)

https://www.acmicpc.net/problem/9375 9375๋ฒˆ: ํŒจ์…˜์™• ์‹ ํ•ด๋นˆ ์ฒซ ๋ฒˆ์งธ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋Š” headgear์— ํ•ด๋‹นํ•˜๋Š” ์˜์ƒ์ด hat, turban์ด๋ฉฐ eyewear์— ํ•ด๋‹นํ•˜๋Š” ์˜์ƒ์ด sunglasses์ด๋ฏ€๋กœ (hat), (turban), (sunglasses), (hat,sunglasses), (turban,sunglasses)๋กœ ์ด 5๊ฐ€์ง€ ์ด๋‹ค. www.acmicpc.net ์•„์ด๋””์–ด 1. ์กฐํ•ฉ ์ฒ˜์Œ์— ๋ฌธ์ œ๋ฅผ ๋ดค์„ ๋•Œ ๋ฐฉ๋ฒ•์„ ๋ชฐ๋ผ์„œ ์กฐํ•ฉ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•จ. ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์™€ n์˜ ์ตœ๋Œ€๊ฐ€ ์ ์–ด ๊ฐ€๋Šฅํ•  ๊ฑฐ๋ผ ์ƒ๊ฐํ–ˆ์ง€๋งŒ ๋‹ค์‹œ ์ƒ๊ฐํ•ด๋ณด๋‹ˆ ์กฐํ•ฉ์ด๋ฉด ๊ฒฝ์šฐ์˜ ์ˆ˜๊ฐ€ ์—„์ฒญ ๋งŽ์•„์ง€๋‹ˆ ์‹œ๊ฐ„ ์ดˆ๊ณผ๊ฐ€ ๋–ด๋‹ค. 2. ์ˆ˜ํ•™ ์–ด๋ฆด ๋•Œ ๋ฐฐ์› ๋˜ ๊ฒฝ์šฐ์˜ ์ˆ˜ ๋ฌธ์ œ๋ฅผ ์ƒ๊ฐํ•˜๋ฉด ๊ธˆ๋ฐฉ ํ’€ ์ˆ˜ ์žˆ๋‹ค. ๋”•์…”๋„ˆ๋ฆฌ์™€ ๊ฐ™์ด ์“ฐ๋ฉด..

๐Ÿงฉ Problem Solving/[๋ฐฑ์ค€]

[๋ฐฑ์ค€] 1074 Z (python ํŒŒ์ด์ฌ)

https://www.acmicpc.net/problem/1074 1074๋ฒˆ: Z ํ•œ์ˆ˜๋Š” ํฌ๊ธฐ๊ฐ€ 2N × 2N์ธ 2์ฐจ์› ๋ฐฐ์—ด์„ Z๋ชจ์–‘์œผ๋กœ ํƒ์ƒ‰ํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, 2×2๋ฐฐ์—ด์„ ์™ผ์ชฝ ์œ„์นธ, ์˜ค๋ฅธ์ชฝ ์œ„์นธ, ์™ผ์ชฝ ์•„๋ž˜์นธ, ์˜ค๋ฅธ์ชฝ ์•„๋ž˜์นธ ์ˆœ์„œ๋Œ€๋กœ ๋ฐฉ๋ฌธํ•˜๋ฉด Z๋ชจ์–‘์ด๋‹ค. N > 1์ธ ๊ฒฝ์šฐ, ๋ฐฐ์—ด์„ www.acmicpc.net ZZZ ์•„์ด๋””์–ด 1. ์ˆซ์ž๋ฅผ ์–ด๋–ป๊ฒŒ ์ฐพ์ง€ ์ฒ˜์Œ์—๋Š” ๋ฐฐ์—ด์„ ๋งŒ๋“ค์–ด๋ณด๋ ค ํ–ˆ์œผ๋‚˜ ์ตœ๋Œ€๊ธธ์ด๊ฐ€ 2^15์ธ๊ฑธ ๋ณด๊ณ  ์ ‘์—ˆ๋‹ค. ๋ถ„ํ•  ํƒ์ƒ‰๊ฐ™์ด ์ƒ๊ฒผ์ง€๋งŒ ํ˜น์‹œ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์ด ์žˆ์„๊นŒ ๋ด ๊ณ ๋ฏผํ•˜๋‹ค๊ฐ€ ๊ทธ๋ƒฅ ๋ถ„ํ•  ์ •๋ณต์œผ๋กœ ํ’€๊ธฐ๋กœ ํ–ˆ๋‹ค. 2. ๊ทœ์น™์„ ์ฐพ์•„์•ผ ํ•ด ๋ฌธ์ œ์—์„œ ์ฃผ์–ด์ง„ ๊ทธ๋ฆผ์„ ๋ณด๋ฉด 4๋“ฑ๋ถ„ ํ–ˆ์„ ๋•Œ ๋Š๋‚Œ์ด ์˜จ๋‹ค. 4๋“ฑ๋ถ„ ํ–ˆ์„๋•Œ ๊ฐ๊ฐ์˜ ์ฒซ ๋ฒˆ์งธ ์š”์†Œ๊ฐ€ ์ผ์ •ํ•œ ๊ทœ์น™์ด ์žˆ๋‹ค๋Š” ๊ฒŒ ๋ณด์ธ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด N = 3์œผ๋กœ ์ฃผ..

๐Ÿงฉ Problem Solving/[๋ฐฑ์ค€]

[๋ฐฑ์ค€] 9019 DSLR (python ํŒŒ์ด์ฌ)

https://www.acmicpc.net/problem/9019 9019๋ฒˆ: DSLR ๋„ค ๊ฐœ์˜ ๋ช…๋ น์–ด D, S, L, R ์„ ์ด์šฉํ•˜๋Š” ๊ฐ„๋‹จํ•œ ๊ณ„์‚ฐ๊ธฐ๊ฐ€ ์žˆ๋‹ค. ์ด ๊ณ„์‚ฐ๊ธฐ์—๋Š” ๋ ˆ์ง€์Šคํ„ฐ๊ฐ€ ํ•˜๋‚˜ ์žˆ๋Š”๋ฐ, ์ด ๋ ˆ์ง€์Šคํ„ฐ์—๋Š” 0 ์ด์ƒ 10,000 ๋ฏธ๋งŒ์˜ ์‹ญ์ง„์ˆ˜๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ฐ ๋ช…๋ น์–ด๋Š” ์ด ๋ ˆ์ง€์Šคํ„ฐ์— www.acmicpc.net ์•„์ด๋””์–ด 1. bfs ์ตœ์†Œํ•œ์˜ ๋ช…๋ น ์–ด์„ ์ถœ๋ ฅ ํ•˜๋ผ ํ–ˆ์œผ๋ฏ€๋กœ bfs๊ฐ€ ์•„๋‹ˆ๋ฉด ๋ชป ํ’€ ๊ฑฐ ๊ฐ™๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค. ์‹œ๊ฐ„์ œํ•œ๋„ 6์ดˆ๋กœ ๋„‰๋„‰ํ•˜๊ฒŒ ์žˆ์–ด์„œ ์ถฉ๋ถ„ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค. 2. ์‹œ๊ฐ„ ์ดˆ๊ณผ ์š”์ฆ˜ ๊ณ„์† ์‹œ๊ฐ„ ์ดˆ๊ณผ๊ฐ€ ๋œฌ๋‹ค. 6์ดˆ๋ผ์„œ ๋„‰๋„‰ํ•  ์ค„ ์•Œ์•˜๋Š”๋ฐ. ์‹œ๊ฐ„ ์ดˆ๊ณผ๊ฐ€ ๋œฌ์ด์œ ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. D, S, L, R ๊ฐ๊ฐ์˜ ๋ช…๋ น์–ด๋ฅผ ๊ฐ„์†Œํ•˜๊ฒŒ ๊ตฌํ˜„ํ•ด์•ผ ํ–ˆ๋Š”๋ฐ, if๋ฌธ์ด๋‚˜ ๋ฆฌ์ŠคํŠธ๋ฅผ ์‚ฌ์šฉํ•ด ์‹œ๊ฐ„์ œํ•œ์ด ๊ฑธ๋ฆฐ ๊ฑฐ ๊ฐ™๋‹ค..

๐Ÿงฉ Problem Solving/[๋ฐฑ์ค€]

[๋ฐฑ์ค€] 14500 ํ…ŒํŠธ๋กœ๋ฏธ๋…ธ (python ํŒŒ์ด์ฌ)

https://www.acmicpc.net/problem/14500 14500๋ฒˆ: ํ…ŒํŠธ๋กœ๋ฏธ๋…ธ ํด๋ฆฌ์˜ค๋ฏธ๋…ธ๋ž€ ํฌ๊ธฐ๊ฐ€ 1×1์ธ ์ •์‚ฌ๊ฐํ˜•์„ ์—ฌ๋Ÿฌ ๊ฐœ ์ด์–ด์„œ ๋ถ™์ธ ๋„ํ˜•์ด๋ฉฐ, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•ด์•ผ ํ•œ๋‹ค. ์ •์‚ฌ๊ฐํ˜•์€ ์„œ๋กœ ๊ฒน์น˜๋ฉด ์•ˆ ๋œ๋‹ค. ๋„ํ˜•์€ ๋ชจ๋‘ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์–ด์•ผ ํ•œ๋‹ค. ์ •์‚ฌ๊ฐํ˜•์˜ ๋ณ€ www.acmicpc.net ์•„์ด๋””์–ด 1. ๋‘ ๊ฐ€์ง€๋กœ ๋‚˜๋ˆ  ์ƒ๊ฐํ•˜๋ฉด ํ…ŒํŠธ๋กœ๋ฏธ๋…ธ ๋„ํ˜• ๋งŒ๋“ค๊ธฐ ์ข…์ด ์œ„์— ์˜ฌ๋ฆฌ๊ธฐ 2. ๋„ํ˜• ๋งŒ๋“ค๊ธฐ ๋„ํ˜•์ด ํšŒ์ „์ด๋‚˜ ๋Œ€์นญ๋„ ๊ฐ€๋Šฅํ•˜๋‹ˆ dfs๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด T๋„ํ˜• ๋นผ๊ณ  ์ „๋ถ€ ๋‹ค ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. dfs ํƒ์ƒ‰ ๊นŠ์ด๋ฅผ 4๊นŒ์ง€ ์„ค์ •ํ•˜๋ฉด ๋„ํ˜•์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. T ๋ชจ์–‘์€ ๋”ฐ๋กœ ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด ์ฒ˜๋ฆฌํ–ˆ๋‹ค. 3. ์ข…์ด์— ๋„ํ˜• ๋†“๊ธฐ ์‹œ๊ฐ„์ œํ•œ์ด๋‚˜ N, M ํฌ๊ธฐ๋ฅผ ๋ณด๊ณ  ๋ธŒ๋ฃจํŠธ ํฌ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ๋‹ค. ๊ฐ ์œ„์น˜๋งˆ๋‹ค ๋งŒ๋“ค์–ด..

๐Ÿงฉ Problem Solving/[๋ฐฑ์ค€]

[๋ฐฑ์ค€] 18111 ๋งˆ์ธํฌ๋ž˜ํ”„ํŠธ (python ํŒŒ์ด์ฌ)

https://www.acmicpc.net/problem/18111 18111๋ฒˆ: ๋งˆ์ธํฌ๋ž˜ํ”„ํŠธ ํŒ€ ๋ ˆ๋“œ์‹œํ”„ํŠธ๋Š” ๋Œ€ํšŒ ์ค€๋น„๋ฅผ ํ•˜๋‹ค๊ฐ€ ์ง€๋ฃจํ•ด์ ธ์„œ ์ƒŒ๋“œ๋ฐ•์Šค ๊ฒŒ์ž„์ธ ‘๋งˆ์ธํฌ๋ž˜ํ”„ํŠธ’๋ฅผ ์ผฐ๋‹ค. ๋งˆ์ธํฌ๋ž˜ํ”„ํŠธ๋Š” 1 × 1 × 1(์„ธ๋กœ, ๊ฐ€๋กœ, ๋†’์ด) ํฌ๊ธฐ์˜ ๋ธ”๋ก๋“ค๋กœ ์ด๋ฃจ์–ด์ง„ 3์ฐจ์› ์„ธ๊ณ„์—์„œ ์ž์œ ๋กญ๊ฒŒ www.acmicpc.net ์•„์ด๋””์–ด 1. ๋ธŒ๋ฃจํŠธ ํฌ์Šค ๋ฌธ์ œ์—์„œ ๋†’์ด ์ด๊ฐ€ 256๊นŒ์ง€ ๊ทธ๋ฆฌ๊ณ  N, M์ด 500๊นŒ์ง€๊ฐ€ ์ตœ๋Œ€๋‹ค. 256*500*500 = 64000000์ด๋ฏ€๋กœ 1์ดˆ ์•ˆ์— ๊ฐ€๋Šฅํ•˜๋‹ค ์ƒ๊ฐ.. 2. ์‹œ๊ฐ„ ์ดˆ๊ณผ ๋ธŒ๋ฃจํŠธ ํฌ์Šค๋กœ ๊ฐ€๋Šฅํ•˜๋‹ค ์ƒ๊ฐํ–ˆ๋Š”๋ฐ ๊ณ„์† ์‹œ๊ฐ„ ์ดˆ๊ณผ๊ฐ€ ๊ฑธ๋ ธ๋‹ค. ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด ์ง  ์ฝ”๋“œ๋ฅผ ํ™•์ธํ•ด ๋ณด๋‹ˆ elif๊ฐ€ ์•„๋‹Œ else๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค. pypy๋กœ ํ†ต๊ณผํ–ˆ๋‹ค. else์™€ elif๊ฐ€ ์‹œ๊ฐ„ ์ฐจ์ด๊ฐ€ ๋งŽ์ด ๋‚œ๋‹ค๋Š” ๊ฒƒ์„ ..

๐Ÿงฉ Problem Solving/[๋ฐฑ์ค€]

[๋ฐฑ์ค€] 1107 ๋ฆฌ๋ชจ์ฝ˜ (python ํŒŒ์ด์ฌ)

https://www.acmicpc.net/problem/1107 1107๋ฒˆ: ๋ฆฌ๋ชจ์ปจ ์ฒซ์งธ ์ค„์— ์ˆ˜๋นˆ์ด๊ฐ€ ์ด๋™ํ•˜๋ ค๊ณ  ํ•˜๋Š” ์ฑ„๋„ N (0 ≤ N ≤ 500,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„์—๋Š” ๊ณ ์žฅ๋‚œ ๋ฒ„ํŠผ์˜ ๊ฐœ์ˆ˜ M (0 ≤ M ≤ 10)์ด ์ฃผ์–ด์ง„๋‹ค. ๊ณ ์žฅ๋‚œ ๋ฒ„ํŠผ์ด ์žˆ๋Š” ๊ฒฝ์šฐ์—๋Š” ์…‹์งธ ์ค„์—๋Š” ๊ณ ์žฅ๋‚œ ๋ฒ„ํŠผ www.acmicpc.net ์•„์ด๋””์–ด 1. ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ ํƒ ์ฒ˜์Œ ๋ฌธ์ œ๋ฅผ ๋ณด๊ณ  DP๋กœ ํ’€์–ด์•ผ ํ•˜๋‚˜ ์ƒ๊ฐํ•˜๋ฉด์„œ ๋„์ €ํžˆ ๋ชจ๋ฅด๊ฒ ์–ด์„œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ถ„๋ฅ˜๋ฅผ ๋ณด๋‹ˆ๊นŒ ๊ทธ๋ƒฅ ๋ธŒ๋ฃจํŠธ ํฌ์Šค ๋ฌธ์ œ๋‹ค. 2. ๊ตฌํ˜„ ๋จผ์ € ํ˜„์žฌ ์ฑ„๋„(100)์—์„œ ์ตœ์†Œ๊ฐ’์ด ๋‚˜์˜ฌ ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธ ์ดํ›„ 0๋ถ€ํ„ฐ 1000000๊นŒ์ง€ ๋ฒ„ํŠผ์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ์ฑ„๋„์ธ์ง€ ํ™•์ธ ๊ทธ ์ฑ„๋„ ์ˆซ์ž๋ฅผ ๋งŒ๋“œ๋Š”๋ฐ ํ•„์š”ํ•œ ๋ฒ„ํŠผ ๊ฐœ์ˆ˜ ํ™•์ธ ์ฝ”๋“œ ์„ค๋ช… N = int(input()) M = in..

๐Ÿงฉ Problem Solving/[๋ฐฑ์ค€]

[๋ฐฑ์ค€] 16234 ์ธ๊ตฌ์ด๋™ (python ํŒŒ์ด์ฌ)

https://www.acmicpc.net/problem/16234 16234๋ฒˆ: ์ธ๊ตฌ ์ด๋™ N×Nํฌ๊ธฐ์˜ ๋•…์ด ์žˆ๊ณ , ๋•…์€ 1×1๊ฐœ์˜ ์นธ์œผ๋กœ ๋‚˜๋ˆ„์–ด์ ธ ์žˆ๋‹ค. ๊ฐ๊ฐ์˜ ๋•…์—๋Š” ๋‚˜๋ผ๊ฐ€ ํ•˜๋‚˜์”ฉ ์กด์žฌํ•˜๋ฉฐ, rํ–‰ c์—ด์— ์žˆ๋Š” ๋‚˜๋ผ์—๋Š” A[r][c]๋ช…์ด ์‚ด๊ณ  ์žˆ๋‹ค. ์ธ์ ‘ํ•œ ๋‚˜๋ผ ์‚ฌ์ด์—๋Š” ๊ตญ๊ฒฝ์„ ์ด ์กด์žฌํ•œ๋‹ค. ๋ชจ www.acmicpc.net ์•„์ด๋””์–ด 1. ํŒŒ์ด์ฌ ์ด์Šˆ ์ฒ˜์Œ์— dfs๋กœ ์ ‘๊ทผํ–ˆ๋Š”๋ฐ Python3๋กœ ์ฑ„์ ํ•˜๋ฉด 80% ์—์„œ ์‹œ๊ฐ„ ์ดˆ๊ณผ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค. (pypy๋กœ๋Š” ํ†ต๊ณผ) ํฌ๊ธฐํ•˜๊ณ  bfs๋กœ ์ ‘๊ทผํ–ˆ๋Š”๋ฐ ๋˜ ์‹œ๊ฐ„ ์ดˆ๊ณผ๊ฐ€ ๋ฐœ์ƒํ•ด์„œ ์กฐ๊ฑด์„ ๋ช‡ ๊ฐœ ์ถ”๊ฐ€ํ•˜๋‹ˆ ํ†ต๊ณผ๋จ. c++ ์˜€์œผ๋ฉด dfs๋กœ ํ†ต๊ณผํ–ˆ์„ ๊ฑฐ ๊ฐ™๋‹ค. 2. ๊ตฌํ˜„ ํŒŒํŠธ๋Š” ํฌ๊ฒŒ ๋‘ ๊ฐœ๋กœ ๋‚˜๋ˆด๋‹ค. ๊ตญ๊ฒฝ์„  ์—ด๊ธฐ ์ธ๊ตฌ์ˆ˜ ๋ถ„๋ฐฐ ์ฝ”๋“œ ์„ค๋ช… ๊ธฐ๋ณธ์ ์œผ๋กœ ์ด์ค‘ for๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ ๊ฐ ์œ„์น˜..

๐Ÿงฉ Problem Solving/[๋ฐฑ์ค€]

[๋ฐฑ์ค€] 1389 ์ผ€๋นˆ ๋ฒ ์ด์ปจ์˜ 6๋‹จ๊ณ„ ๋ฒ•์น™ (python ํŒŒ์ด์ฌ)

https://www.acmicpc.net/problem/1389 1389๋ฒˆ: ์ผ€๋นˆ ๋ฒ ์ด์ปจ์˜ 6๋‹จ๊ณ„ ๋ฒ•์น™ ์ฒซ์งธ ์ค„์— ์œ ์ €์˜ ์ˆ˜ N (2 ≤ N ≤ 100)๊ณผ ์นœ๊ตฌ ๊ด€๊ณ„์˜ ์ˆ˜ M (1 ≤ M ≤ 5,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ M๊ฐœ์˜ ์ค„์—๋Š” ์นœ๊ตฌ ๊ด€๊ณ„๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์นœ๊ตฌ ๊ด€๊ณ„๋Š” A์™€ B๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์œผ๋ฉฐ, A์™€ B๊ฐ€ ์นœ๊ตฌ๋ผ๋Š” ๋œป www.acmicpc.net ๋ฌธ์ œ๋ฅผ ๋ณด๋‹ค๊ฐ€ ์ตœ๊ทผ์— ๊ณต๋ถ€ํ•œ ํ”Œ๋กœ์ด๋“œ ์›Œ์ƒฌ๋กœ ํ’€ ์ˆ˜ ์žˆ์„ ๊ฑฐ ๊ฐ™์•„ ์‚ฌ์šฉํ–ˆ๋”๋‹ˆ ํ†ต๊ณผ๋๋‹ค. ํ’€์ด ๊ณผ์ • for _ in range(M): a,b = map(int,sys.stdin.readline().rstrip().split()) graph[a][b] = 1 graph[b][a] = 1 for i in range(1, N + 1): for j in ra..

์ œ๋ด‰์•„
'๐Ÿงฉ Problem Solving' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก (8 Page)