[๋ฐฑ์ค€] 14500 ํ…ŒํŠธ๋กœ๋ฏธ๋…ธ (python ํŒŒ์ด์ฌ)
ยท
๐Ÿงฉ Problem Solving/[๋ฐฑ์ค€]
https://www.acmicpc.net/problem/14500 14500๋ฒˆ: ํ…ŒํŠธ๋กœ๋ฏธ๋…ธ ํด๋ฆฌ์˜ค๋ฏธ๋…ธ๋ž€ ํฌ๊ธฐ๊ฐ€ 1×1์ธ ์ •์‚ฌ๊ฐํ˜•์„ ์—ฌ๋Ÿฌ ๊ฐœ ์ด์–ด์„œ ๋ถ™์ธ ๋„ํ˜•์ด๋ฉฐ, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•ด์•ผ ํ•œ๋‹ค. ์ •์‚ฌ๊ฐํ˜•์€ ์„œ๋กœ ๊ฒน์น˜๋ฉด ์•ˆ ๋œ๋‹ค. ๋„ํ˜•์€ ๋ชจ๋‘ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์–ด์•ผ ํ•œ๋‹ค. ์ •์‚ฌ๊ฐํ˜•์˜ ๋ณ€ www.acmicpc.net ์•„์ด๋””์–ด 1. ๋‘ ๊ฐ€์ง€๋กœ ๋‚˜๋ˆ  ์ƒ๊ฐํ•˜๋ฉด ํ…ŒํŠธ๋กœ๋ฏธ๋…ธ ๋„ํ˜• ๋งŒ๋“ค๊ธฐ ์ข…์ด ์œ„์— ์˜ฌ๋ฆฌ๊ธฐ 2. ๋„ํ˜• ๋งŒ๋“ค๊ธฐ ๋„ํ˜•์ด ํšŒ์ „์ด๋‚˜ ๋Œ€์นญ๋„ ๊ฐ€๋Šฅํ•˜๋‹ˆ dfs๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด T๋„ํ˜• ๋นผ๊ณ  ์ „๋ถ€ ๋‹ค ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. dfs ํƒ์ƒ‰ ๊นŠ์ด๋ฅผ 4๊นŒ์ง€ ์„ค์ •ํ•˜๋ฉด ๋„ํ˜•์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. T ๋ชจ์–‘์€ ๋”ฐ๋กœ ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด ์ฒ˜๋ฆฌํ–ˆ๋‹ค. 3. ์ข…์ด์— ๋„ํ˜• ๋†“๊ธฐ ์‹œ๊ฐ„์ œํ•œ์ด๋‚˜ N, M ํฌ๊ธฐ๋ฅผ ๋ณด๊ณ  ๋ธŒ๋ฃจํŠธ ํฌ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ๋‹ค. ๊ฐ ์œ„์น˜๋งˆ๋‹ค ๋งŒ๋“ค์–ด..
[๋ฐฑ์ค€] 18111 ๋งˆ์ธํฌ๋ž˜ํ”„ํŠธ (python ํŒŒ์ด์ฌ)
ยท
๐Ÿงฉ Problem Solving/[๋ฐฑ์ค€]
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๊ฐ€ ์‹œ๊ฐ„ ์ฐจ์ด๊ฐ€ ๋งŽ์ด ๋‚œ๋‹ค๋Š” ๊ฒƒ์„ ..
[๋ฐฑ์ค€] 1107 ๋ฆฌ๋ชจ์ฝ˜ (python ํŒŒ์ด์ฌ)
ยท
๐Ÿงฉ Problem Solving/[๋ฐฑ์ค€]
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..
[๋ฐฑ์ค€] 16234 ์ธ๊ตฌ์ด๋™ (python ํŒŒ์ด์ฌ)
ยท
๐Ÿงฉ Problem Solving/[๋ฐฑ์ค€]
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๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ ๊ฐ ์œ„์น˜..
[๋ฐฑ์ค€] 1389 ์ผ€๋นˆ ๋ฒ ์ด์ปจ์˜ 6๋‹จ๊ณ„ ๋ฒ•์น™ (python ํŒŒ์ด์ฌ)
ยท
๐Ÿงฉ Problem Solving/[๋ฐฑ์ค€]
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..
[๋ฐฑ์ค€] 7562 ๋‚˜์ดํŠธ์˜ ์ด๋™ (python ํŒŒ์ด์ฌ)
ยท
๐Ÿงฉ Problem Solving/[๋ฐฑ์ค€]
https://www.acmicpc.net/problem/7562 7562๋ฒˆ: ๋‚˜์ดํŠธ์˜ ์ด๋™ ์ฒด์ŠคํŒ ์œ„์— ํ•œ ๋‚˜์ดํŠธ๊ฐ€ ๋†“์—ฌ์ ธ ์žˆ๋‹ค. ๋‚˜์ดํŠธ๊ฐ€ ํ•œ ๋ฒˆ์— ์ด๋™ํ•  ์ˆ˜ ์žˆ๋Š” ์นธ์€ ์•„๋ž˜ ๊ทธ๋ฆผ์— ๋‚˜์™€์žˆ๋‹ค. ๋‚˜์ดํŠธ๊ฐ€ ์ด๋™ํ•˜๋ ค๊ณ  ํ•˜๋Š” ์นธ์ด ์ฃผ์–ด์ง„๋‹ค. ๋‚˜์ดํŠธ๋Š” ๋ช‡ ๋ฒˆ ์›€์ง์ด๋ฉด ์ด ์นธ์œผ๋กœ ์ด๋™ํ•  ์ˆ˜ www.acmicpc.net ๋ฏธ๋กœ ์ฐพ๊ธฐ๋ž‘ ๋น„์Šทํ•˜๋‹ค. ์ €๋ฒˆ์— ํƒ์ƒ‰ ๋ฌธ์ œ ํ’€ ๋•Œ bfs๋กœ ์‹œ๊ฐ„ ์ดˆ๊ณผ๊ฐ€ ๋œฌ ๊ฒฝํ—˜์„ ์‚ผ์•„ dfs๋กœ ํ’€์—ˆ๋Š”๋ฐ ํ•ด๊ฒฐ์ด ์•ˆ ๋๋‹ค. ์ƒ๊ฐํ•ด๋ณด๋‹ค๊ฐ€ bfs๋กœ ํ’€์—ˆ๋Š”๋ฐ ๋ฐ”๋กœ ๋‹ต์ด ๋‚˜์™”๋‹ค. ๋‚ด ์ƒ๊ฐ์—๋Š” bfs๋‹ˆ๊นŒ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์ตœ๋‹จ๊ฑฐ๋ฆฌ๊ฐ€ ๋‚˜์˜ค๋‹ˆ๊นŒ(depth ๋ณ„๋กœ ํƒ์ƒ‰) ์ด๋Ÿฐ ๋ฌธ์ œ๋Š” bfs๋กœ ํ‘ธ๋Š” ๊ฒŒ ์ข‹์€ ๊ฑฐ ๊ฐ™๋‹ค. ํ’€์ด ๊ณผ์ • dx = [2,2,1,1,-1,-1,-2,-2] dy = [1,-1,2,-2,2,-2,1,-1]..
[๋ฐฑ์ค€] 11404 ํ”Œ๋กœ์ด๋“œ (python ํŒŒ์ด์ฌ)
ยท
๐Ÿงฉ Problem Solving/[๋ฐฑ์ค€]
https://www.acmicpc.net/problem/11404 11404๋ฒˆ: ํ”Œ๋กœ์ด๋“œ ์ฒซ์งธ ์ค„์— ๋„์‹œ์˜ ๊ฐœ์ˆ˜ n์ด ์ฃผ์–ด์ง€๊ณ  ๋‘˜์งธ ์ค„์—๋Š” ๋ฒ„์Šค์˜ ๊ฐœ์ˆ˜ m์ด ์ฃผ์–ด์ง„๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์…‹์งธ ์ค„๋ถ€ํ„ฐ m+2์ค„๊นŒ์ง€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฒ„์Šค์˜ ์ •๋ณด๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๋จผ์ € ์ฒ˜์Œ์—๋Š” ๊ทธ ๋ฒ„์Šค์˜ ์ถœ๋ฐœ ๋„์‹œ์˜ ๋ฒˆํ˜ธ๊ฐ€ www.acmicpc.net ํ”Œ๋กœ์ด๋“œ-์™€์ƒฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์“ฐ๋Š” ๋ฌธ์ œ. ๋ชจ๋“  ๋…ธ๋“œ ์Œ์˜ ์ตœ๋‹จ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค. ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” O(N^3) ํ’€์ด๊ณผ์ • cost = [[INF for _ in range(N + 1)] for _ in range(N + 1)] for i in range(1, N + 1): for j in range(1, N + 1): if i == j: cost[i][j] = 0 for i in range(m): a..
[๋ฐฑ์ค€] 17070 ํŒŒ์ดํ”„ ์˜ฎ๊ธฐ๊ธฐ 1 (python ํŒŒ์ด์ฌ)
ยท
๐Ÿงฉ Problem Solving/[๋ฐฑ์ค€]
https://www.acmicpc.net/problem/17070 17070๋ฒˆ: ํŒŒ์ดํ”„ ์˜ฎ๊ธฐ๊ธฐ 1 ์œ ํ˜„์ด๊ฐ€ ์ƒˆ ์ง‘์œผ๋กœ ์ด์‚ฌํ–ˆ๋‹ค. ์ƒˆ ์ง‘์˜ ํฌ๊ธฐ๋Š” N×N์˜ ๊ฒฉ์žํŒ์œผ๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๊ณ , 1×1ํฌ๊ธฐ์˜ ์ •์‚ฌ๊ฐํ˜• ์นธ์œผ๋กœ ๋‚˜๋ˆ„์–ด์ ธ ์žˆ๋‹ค. ๊ฐ๊ฐ์˜ ์นธ์€ (r, c)๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋‹ค. ์—ฌ๊ธฐ์„œ r์€ ํ–‰์˜ ๋ฒˆํ˜ธ, c๋Š” ์—ด์˜ www.acmicpc.net ํŒŒ์ด์ฌ์ด๋ผ ์–ต๊นŒ๋‹นํ•จ. ๋‚œ์ด๋„๋Š” ๋‚ฎ์ง€๋งŒ ์‹œ๊ฐ„ ์ดˆ๊ณผ๋กœ ๊ณ ์ƒํ–ˆ๋‹ค. ๋งจ ์ฒ˜์Œ bfs๋กœ ํ’€์—ˆ์„๋•Œ ์‹œ๊ฐ„ ์ดˆ๊ณผ๊ฐ€ ์ฑ„์  70%์—์„œ ์ž๊พธ ๊ฑธ๋ฆฌ๊ธธ๋ž˜ ๋ฐฉ๋ฒ•์ด ํ‹€๋ฆฐ ์ค„ ์•Œ์•˜๋‹ค. ์•„๋งˆ ํŒŒ์ด์ฌ์ด ์•„๋‹ˆ์˜€์œผ๋ฉด ๋งž์•˜์„ ๊ฑฐ ๊ฐ™๋‹ค. from collections import deque import sys count = 0 N = int(input()) home = [] for _ in range(N): h..