๐Ÿงฉ Problem Solving

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

[๋ฐฑ์ค€] 28250 ์ด๋ธŒ, ํ”„์‹œ์ผ€ ๊ทธ๋ฆฌ๊ณ  ํ‘ธ๋ฅธ MEX์˜ ์•„๋‚ด (python ํŒŒ์ด์ฌ)

https://www.acmicpc.net/problem/28250 28250๋ฒˆ: ์ด๋ธŒ, ํ”„์‹œ์ผ€ ๊ทธ๋ฆฌ๊ณ  ํ‘ธ๋ฅธ MEX์˜ ์•„๋‚ด ์ฒซ์งธ ์ค„์— ์ •์ˆ˜ $N$์ด ์ฃผ์–ด์ง„๋‹ค. ($2 \le N \le 200\,000$) ๋‘˜์งธ ์ค„์— $N$๊ฐœ์˜ ์ •์ˆ˜ $A_1, A_2, \dots, A_N$์ด ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„๋˜์–ด ์ฃผ์–ด์ง„๋‹ค. ($0 \le A_i \le 100\,000$) www.acmicpc.net ๋ฌธ์ œ ์ด๋ฆ„์ด ํŠน์ดํ•ด์„œ ํ’€์–ด๋ณธ ๋ฌธ์ œ. ์‹ค2๋ผ๊ณ  ์–•์žก์•„๋ดค๋‹ค๊ฐ€ ๋”์ฐํ•œ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์™”๋‹ค. ์‹ค์ œ ์ฝ”ํ…Œ์˜€๋‹ค๋ฉด ํ’€์—ˆ์„์ง€ ์žฅ๋‹ด ๋ชปํ•˜๊ฒ ๋‹ค. ๊ผญ ์ž…๋ ฅ๊ฐ’ ์ œํ•œ์„ ๋ณด๋ฉด์„œ ์‹œ๊ฐ„์„ ์ถ”์ธกํ•˜๋Š” ์Šต๊ด€์„ ๋“ค์ด์ž. ์—ฌ๋‹ด์ด์ง€๋งŒ ์ฝ”ํ…Œ ํ™˜๊ฒฝ์„ ์ƒ์ƒํ•˜๋ฉฐ ๋ฌธ์ œ๋ฅผ ํ‘ธ๋Š” ๊ฑด ๋„์›€์ด ๋˜๋Š” ๊ฑฐ ๊ฐ™๋‹ค. ์•„์ด๋””์–ด 1. ์ด์ค‘ for๋ฌธ ์‹คํŒจ ์ˆ˜์‹์„ ๋ณด๊ณ  ๋ฌด์‹ํ•˜๊ฒŒ ์ด์ค‘ for์œผ๋กœ ๊ตฌํ˜„ํ–ˆ๋‹ค๊ฐ€ ..

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

[๋ฐฑ์ค€] 28017 ๊ฒŒ์ž„์„ ํด๋ฆฌ์–ดํ•˜์ž (python ํŒŒ์ด์ฌ)

https://www.acmicpc.net/problem/28017 28017๋ฒˆ: ๊ฒŒ์ž„์„ ํด๋ฆฌ์–ดํ•˜์ž ์ฒซ์งธ ์ค„์— ์‚ฐ์ง€๋‹ˆ๊ฐ€ ๊ฒŒ์ž„์„ ๋ช‡ ํšŒ์ฐจ๋ฅผ ํ•˜๋Š”์ง€ ๋‚˜ํƒ€๋‚ด๋Š” ์ˆ˜ $N$๊ณผ ๋ฌด๊ธฐ์˜ ์ข…๋ฅ˜ $M$์ด ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„๋˜์–ด ์ฃผ์–ด์ง„๋‹ค. $(2 \le N, M \le 500)$ ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ $N$๊ฐœ์˜ ์ค„์—๋Š” ๊ฐ ๋ฌด๊ธฐ๋งˆ๋‹ค ๊ฒŒ์ž„์„ ํด๋ฆฌ์–ดํ•˜๋Š”๋ฐ www.acmicpc.net ๋Œ€ํšŒ ์ดˆ๋ฐ˜์— ์‚ฝ์ง‘ํ•˜๋‹ค๊ฐ€ DP์ธ๊ฑธ ๊นจ๋‹ซ๊ณ  ํ•ด๊ฒฐํ–ˆ๋‹ค. pypy๋กœ ์ œ์ถœ, ์ดํ›„ python์œผ๋กœ ๋‹ค์‹œ ์ œ์ถœ. ์•„์ด๋””์–ด 1. ๋ฐ˜๋ณต๋ฌธ ๋‹จ์ˆœ ๋ฐ˜๋ณต๋ฌธ์œผ๋กœ ์ž‘์„ฑํ–ˆ๋‹ค ์‹คํŒจํ–ˆ๋‹ค. 2. DP nํšŒ์ฐจ์˜ ๊ฐ ๋ฌด๊ธฐ๋งˆ๋‹ค ์˜ฌ ์ˆ˜ ์žˆ๋Š” ์‹œ๊ฐ„์„ ์ €์žฅํ•˜๋ฉด ๋œ๋‹ค. ์œ„ ์ด๋ฏธ์ง€์ฒ˜๋Ÿผ ์ด์ „ ํ–‰์— ์žˆ๋Š” ๊ฐ’ ์ค‘ ์ตœ์†Ÿ๊ฐ’์„ ๋‹ค์Œ ํ–‰์— ๋”ํ•ด๊ฐ€๋ฉฐ ์—…๋ฐ์ดํŠธํ•˜๋ฉด ๋œ๋‹ค. ์ตœ์ข…์ ์œผ๋กœ ๋งˆ์ง€๋ง‰ ํ–‰์˜ ์ตœ์†Ÿ๊ฐ’์„ ์ถœ๋ ฅํ•˜๋ฉด ๋œ๋‹ค. ์ „..

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

[๋ฐฑ์ค€] 9205 ๋งฅ์ฃผ ๋งˆ์‹œ๋ฉด์„œ ๊ฑธ์–ด๊ฐ€๊ธฐ (python ํŒŒ์ด์ฌ)

https://www.acmicpc.net/problem/9205 9205๋ฒˆ: ๋งฅ์ฃผ ๋งˆ์‹œ๋ฉด์„œ ๊ฑธ์–ด๊ฐ€๊ธฐ ์†ก๋„์— ์‚ฌ๋Š” ์ƒ๊ทผ์ด์™€ ์นœ๊ตฌ๋“ค์€ ์†ก๋„์—์„œ ์—ด๋ฆฌ๋Š” ํŽœํƒ€ํฌํŠธ ๋ฝ ํŽ˜์Šคํ‹ฐ๋ฒŒ์— ๊ฐ€๋ ค๊ณ  ํ•œ๋‹ค. ์˜ฌํ•ด๋Š” ๋งฅ์ฃผ๋ฅผ ๋งˆ์‹œ๋ฉด์„œ ๊ฑธ์–ด๊ฐ€๊ธฐ๋กœ ํ–ˆ๋‹ค. ์ถœ๋ฐœ์€ ์ƒ๊ทผ์ด๋„ค ์ง‘์—์„œ ํ•˜๊ณ , ๋งฅ์ฃผ ํ•œ ๋ฐ•์Šค๋ฅผ ๋“ค๊ณ  ์ถœ๋ฐœํ•œ๋‹ค. www.acmicpc.net ๋งจํ•ดํŠผ ๊ฑฐ๋ฆฌ์ธ ์ค„ ๋ชจ๋ฅด๊ณ  ์‚ฝ์งˆํ–ˆ๋‹ค. ๋ฌธ์ œ๋ฅผ ์ž˜ ์ฝ์–ด๋ณด์ž. ์•„์ด๋””์–ด 1. ๊ทธ๋ž˜ํ”„ ํƒ์ƒ‰ ์‹ฌํ”Œํ•˜๊ฒŒ ๋งฅ์ฃผ 20๋ณ‘ = 1000m๋ผ๊ณ  ์ƒ๊ฐํ•˜๊ณ  1000m๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๊ฐˆ ์ˆ˜ ์žˆ๋Š”์ง€ ์—†๋Š”์ง€ ํ™•์ธํ•˜๋ฉด ๋œ๋‹ค. bfs๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๊ฒฐํ–ˆ๋‹ค. ์ „์ฒด ์ฝ”๋“œ from collections import deque def cal_distance(x, y, nx, ny): return abs(nx - x) + abs(ny -..

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

[๋ฐฑ์ค€] 1759 ์•”ํ˜ธ๋งŒ๋“ค๊ธฐ (python ํŒŒ์ด์ฌ)

https://www.acmicpc.net/problem/1759 1759๋ฒˆ: ์•”ํ˜ธ ๋งŒ๋“ค๊ธฐ ์ฒซ์งธ ์ค„์— ๋‘ ์ •์ˆ˜ L, C๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. (3 ≤ L ≤ C ≤ 15) ๋‹ค์Œ ์ค„์—๋Š” C๊ฐœ์˜ ๋ฌธ์ž๋“ค์ด ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„๋˜์–ด ์ฃผ์–ด์ง„๋‹ค. ์ฃผ์–ด์ง€๋Š” ๋ฌธ์ž๋“ค์€ ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž์ด๋ฉฐ, ์ค‘๋ณต๋˜๋Š” ๊ฒƒ์€ ์—†๋‹ค. www.acmicpc.net ์ฒ˜์Œ์—๋Š” itertools ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ˆœ์—ด์„ ๊ตฌํ•˜๊ณ , ๊ฐ ์ˆœ์—ด๋งˆ๋‹ค ๊ฒ€์‚ฌํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ํ–ˆ๋Š”๋ฐ ์‹œ๊ฐ„์ดˆ๊ณผ ๋˜์—ˆ๋‹ค. ์ƒ๊ฐํ•ด ๋ณด๋ฉด ์ตœ๋Œ€ ๊ฒฝ์šฐ๊ฐ€ 15P15๊นŒ์ง€ ๋‚˜์˜ค๋ฏ€๋กœ ์ด ๋ฐฉ๋ฒ•์€ ๋‹น์—ฐํžˆ ์•„๋‹ˆ์—ˆ๋‹ค. ์•”ํ˜ธ๋ฅผ ํŒ๋ณ„ํ•˜๋Š” ๋ฐฉ์‹์ด ์•„๋‹Œ ์ฒ˜์Œ๋ถ€ํ„ฐ ์•”ํ˜ธ๋ฅผ ์กฐ๊ฑด์— ๋งž๊ฒŒ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ๋ฌธ์ œ๋ฅผ ํ’€์–ด ํ•ด๊ฒฐํ•˜์˜€๋‹ค. ์•„์ด๋””์–ด 1. ์•”ํ˜ธ ์กฐ๊ฑด ์•”ํ˜ธ์— ์žˆ๋Š” ์•ŒํŒŒ๋ฒณ์„ ์ฆ๊ฐ€ํ•˜๋Š” ์ˆœ์„œ(aescend)๋กœ ๋ฐฐ์—ด๋˜์—ˆ๋‹ค. ์•”ํ˜ธ์—๋Š” ๋ชจ์Œ 1๊ฐœ..

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

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

https://www.acmicpc.net/problem/11559 11559๋ฒˆ: Puyo Puyo ์ด 12๊ฐœ์˜ ์ค„์— ํ•„๋“œ์˜ ์ •๋ณด๊ฐ€ ์ฃผ์–ด์ง€๋ฉฐ, ๊ฐ ์ค„์—๋Š” 6๊ฐœ์˜ ๋ฌธ์ž๊ฐ€ ์žˆ๋‹ค. ์ด๋•Œ .์€ ๋นˆ๊ณต๊ฐ„์ด๊ณ  .์ด ์•„๋‹Œ๊ฒƒ์€ ๊ฐ๊ฐ์˜ ์ƒ‰๊น”์˜ ๋ฟŒ์š”๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค. R์€ ๋นจ๊ฐ•, G๋Š” ์ดˆ๋ก, B๋Š” ํŒŒ๋ž‘, P๋Š” ๋ณด๋ผ, Y๋Š” ๋…ธ๋ž‘์ด๋‹ค. www.acmicpc.net bfs๋ฅผ ์ž˜ ์‚ฌ์šฉํ•˜๋ฉด ๋˜๋Š” ๋ฌธ์ œ. ์•„์ด๋””์–ด ์ „์ฒด ์ฝ”๋“œ from collections import deque dx = [0, 0, -1, 1] dy = [1, -1, 0, 0] field_info = [] for _ in range(12): field_info.append(list(input())) def bfs(a, b, c): global boom_flag boom_li..

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

[๋ฐฑ์ค€] 2583 ์˜์—ญ ๊ตฌํ•˜๊ธฐ(python ํŒŒ์ด์ฌ)

https://www.acmicpc.net/problem/2583 2583๋ฒˆ: ์˜์—ญ ๊ตฌํ•˜๊ธฐ ์ฒซ์งธ ์ค„์— M๊ณผ N, ๊ทธ๋ฆฌ๊ณ  K๊ฐ€ ๋นˆ์นธ์„ ์‚ฌ์ด์— ๋‘๊ณ  ์ฐจ๋ก€๋กœ ์ฃผ์–ด์ง„๋‹ค. M, N, K๋Š” ๋ชจ๋‘ 100 ์ดํ•˜์˜ ์ž์—ฐ์ˆ˜์ด๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ K๊ฐœ์˜ ์ค„์—๋Š” ํ•œ ์ค„์— ํ•˜๋‚˜์”ฉ ์ง์‚ฌ๊ฐํ˜•์˜ ์™ผ์ชฝ ์•„๋ž˜ ๊ผญ์ง“์ ์˜ x, y์ขŒํ‘œ๊ฐ’๊ณผ ์˜ค www.acmicpc.net ๊ทธ๋ž˜ํ”„ ํƒ์ƒ‰ํ•˜๋Š” ๋ฌธ์ œ. ๋น„์Šทํ•œ ์œ ํ˜•์˜ ๋ฌธ์ œ๋ฅผ ํ’€์–ด๋ดค์œผ๋ฉด ์‰ฌ์šด ๋ฌธ์ œ. ์•„์ด๋””์–ด 1. ๋ชจ๋ˆˆ์ข…์ด M*N ํฌ๊ธฐ์˜ 2์ฐจ์› ๋ฆฌ์ŠคํŠธ๋กœ ๋ชจ๋ˆˆ์ข…์ด๋ฅผ ๋‚˜ํƒ€๋ƒˆ๋‹ค. ์ฃผ์–ด์ง„ ์ง์‚ฌ๊ฐํ˜• ์ขŒํ‘œ์— ๋”ฐ๋ผ ์ง์‚ฌ๊ฐํ˜•์„ ํ‘œํ˜„ํ•ด์ค€๋‹ค. 1์€ ์ง์‚ฌ๊ฐํ˜•, 0์€ ๋นˆ๊ณต๊ฐ„์„ ๋‚˜ํƒ€๋‚ธ๋‹ค. ๋ฌธ์ œ์—์„œ๋Š” ์ขŒํ‘œ๊ฐ€ ์™ผ์ชฝ ์•„๋ž˜๊ฐ€ ์›์ (0, 0)์ด์ง€๋งŒ, ๋ฆฌ์ŠคํŠธ๋Š” ์™ผ์ชฝ ์œ„๊ฐ€ ์›์ ์ด๋‹ค. ์–ด์ฐจํ”ผ ๊ฐ€๋กœ์ถ•์— ๋Œ€ํ•ด ๋Œ€์นญ์ด๋ฏ€๋กœ ๋ฌธ์ œ์—์„œ ์š”๊ตฌํ•œ ๊ฐ’์„ ๊ตฌํ•˜๋Š”..

๐Ÿงฉ Problem Solving/[์•Œ๊ณ ๋ฆฌ์ฆ˜ for PS]

[์•Œ๊ณ ๋ฆฌ์ฆ˜] ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜ (Greedy Algorithm)

๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜(Greedy Algorithm) ํƒ์š•๋ฒ•์œผ๋กœ๋„ ์•Œ๋ ค์ง„ ๋ฌธ์ œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด๋‹ค. ์ด๋ฆ„ ๊ทธ๋Œ€๋กœ ์ฃผ์–ด์ง„ ๋ฌธ์ œ๋ฅผ ๋‹จ์ˆœํ•˜๊ฒŒ ํƒ์š•์ ์œผ๋กœ ํ‘ธ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ํƒ์š•์ ์ด๋ผ๋Š” ๋ง์€ 'ํ˜„์žฌ ์ƒํ™ฉ์—์„œ ๊ฐ€์žฅ ์ข‹์€ ๊ฒƒ๋งŒ ๊ณ„์† ๊ณ ๋ฅด๋Š” ๋ฐฉ๋ฒ•'์„ ๋งํ•œ๋‹ค. ๊ทธ๋ฆฌ๋”” ๋ฐฉ๋ฒ•์Œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๊ฐ ๋‹จ๊ณ„์—์„œ ๊ทธ ์ˆœ๊ฐ„์— ์ตœ์ ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋Š” ๊ฒƒ์„ ์„ ํƒํ•œ๋‹ค. ๋˜ํ•œ ๊ทธ๋ฆฌ๋””๋กœ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ• ๋•Œ๋Š” ํ˜„์žฌ์˜ ์„ ํƒ์ด ๋งˆ์ง€๋ง‰ ํ•ด๋‹ต์˜ ์ตœ์ ์„ฑ์„ ํ•ด์น˜์ง€ ์•Š์„ ๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๊ทธ๋ฆฌ๋“œ ๋ฌธ์ œ๋ฅผ ํ’€ ๋•Œ๋Š” ๋‹ค์ต์ŠคํŠธ๋ผ(dijkstra) ๋˜๋Š” ์œ„์ƒ ์ •๋ ฌ(topological sort) ์•Œ๊ณ ๋ฆฌ์ฆ˜์ฒ˜๋Ÿผ ํŠน์ • ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ฝ”๋“œ๋ฅผ ๋ฏธ๋ฆฌ ์•Œ ํ•„์š”๋Š” ์—†๋‹ค. ๋Œ€์‹  ์šฐ๋ฆฌ๋Š” ๋ฌธ์ œ๋ฅผ ๋ดค์„ ๋•Œ '๊ทธ ๋ฌธ์ œ๊ฐ€ ๊ทธ๋ฆฌ๋“œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š”์ง€'์— ๋Œ€ํ•ด ์•Œ์•„์•ผ ํ•œ๋‹ค. ๊ทธ๋Ÿผ ์–ด๋–ป๊ฒŒ ์•Œ ์ˆ˜ ์žˆ..

๐Ÿงฉ Problem Solving/[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค]

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] 118666 ์„ฑ๊ฒฉ ์œ ํ˜• ๊ฒ€์‚ฌํ•˜๊ธฐ (python ํŒŒ์ด์ฌ)

https://school.programmers.co.kr/learn/courses/30/lessons/118666 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr ์•„์ด๋””์–ด 1. ๋”•์…”๋„ˆ๋ฆฌ ์„ฑ๊ฒฉ์œ ํ˜•์€ key, ์ ์ˆ˜๋Š” value๋กœ ์‚ฌ์šฉํ•ด์„œ ๋”•์…”๋„ˆ๋ฆฌ๋ฅผ ๋งŒ๋“ค์–ด์„œ ํ•ด๊ฒฐํ–ˆ๋‹ค. choices์— ์žˆ๋Š” ๊ฒฐ๊ณผ์— ๋งž์ถฐ ์„ฑ๊ฒฉ ์œ ํ˜• ์ ์ˆ˜๋ฅผ ๋”ํ•ด์ค€๋‹ค. ์ „์ฒด ์ฝ”๋“œ def solution(survey, choices): answer = '' N = len(survey) personality = {'R':0, 'T':0, 'C':0, 'F':0, 'J':0, 'M':0, 'A':0, '..

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