[BOJ/๋ฐฑ์ค€] 14907 ํ”„๋กœ์ ํŠธ ์Šค์ผ€์ค„๋ง - ํŒŒ์ด์ฌ
ยท
๐Ÿ’ป ์•Œ๊ณ ๋ฆฌ์ฆ˜/PS
๋ฌธ์ œ https://www.acmicpc.net/problem/14907 ๋ฌธ์ œํ’€์ด ์œ„์ƒ์ •๋ ฌ ๋ฌธ์ œ ์ž…๋ ฅ์ด ํŠน์ดํ•ด์„œ ์‹ ๊ฒฝ์จ์ค˜์•ผํ•˜๋Š” ๋ฌธ์ œ INPUT์„ ๊ธฐ์ค€์œผ๋กœ for๋ฌธ์„ ๋Œ๋ ธ์œผ๋ฉฐ ๊ฐœํ–‰๋งŒ ๋“ค์–ด์˜ฌ ์‹œ break ํ•˜๋„๋ก ํ•ด์ฃผ์—ˆ๋‹ค. ๋˜ ์•ŒํŒŒ๋ฒณ์ด ์ž…๋ ฅ์œผ๋กœ ๋“ค์–ด์˜ค๊ธฐ๋•Œ๋ฌธ์— index๋กœ ํ™œ์šฉํ•˜๊ธฐ ์œ„ํ•ด ord ๋ณ€ํ™˜ ํ•ด์ฃผ์—ˆ๋‹ค. ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋ณดํ†ต์˜ ์œ„์ƒ์ •๋ ฌ ๋ฌธ์ œ์™€ ํฌ๊ฒŒ ๋‹ค๋ฅผ ๊ฒƒ์ด ์—†์œผ๋‚˜, result๋ฅผ ๊ตฌํ•  ๋•Œ max ํ•จ์ˆ˜๋กœ ๋ชจ๋“  ์ž‘์—…์ด ๋๋‚ ๋•Œ์˜ ์‹œ๊ฐ„์„ ๊ตฌํ•ด์คŒ ์ฝ”๋“œ import sys input=sys.stdin.readline ##์œ„์ƒ์ •๋ ฌ res=[0]*(26) graph=[[] for _ in range(26)] indegree=[0]*(26) time=[0]*(26) for INPUT in sys.stdin: if INPUT..
[BOJ/๋ฐฑ์ค€] 1043 ๊ฑฐ์ง“๋ง - ํŒŒ์ด์ฌ
ยท
๐Ÿ’ป ์•Œ๊ณ ๋ฆฌ์ฆ˜/PS
๋ฌธ์ œ ์ง„์‹ค์„ ์•Œ๊ณ  ์žˆ๋Š” ์‚ฌ๋žŒ์ด ํŒŒํ‹ฐ์— ์˜ค๋Š” ๊ฒฝ์šฐ, ์ง„์‹ค์„ ์•Œ๊ณ  ์žˆ๋Š” ์‚ฌ๋žŒ๊ณผ ๊ฐ™์€ ํŒŒํ‹ฐ์— ์™”๋˜ ์‚ฌ๋žŒ์ด ๋‹ค๋ฅธ ํŒŒํ‹ฐ์— ์˜ค๋Š” ๊ฒฝ์šฐ, ๊ฑฐ๊ธฐ์— ์žˆ๋Š” ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ์ฐธ์„ํ•˜๋Š” ๋˜ ๋‹ค๋ฅธ ํŒŒํ‹ฐ์˜ ๊ฒฝ์šฐ ๋“ฑ์ด ์กด์žฌํ•˜๋Š” ์ƒํ™ฉ์—์„œ ์ง€๋ฏผ์ด๊ฐ€ ๊ณผ์žฅ๋œ ์ด์•ผ๊ธฐ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋Š” ํŒŒํ‹ฐ ์ˆ˜์˜ ์ตœ๋Œ“๊ฐ’์„ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ. ๋ฌธ์ œํ’€์ด Union-Find ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ํ’€์ด ์ง€๋ฏผ์ด๊ฐ€ ๊ณผ์žฅ๋œ ์ด์•ผ๊ธฐ๋ฅผ ํ•  ์ˆ˜ ์—†๋Š” ์‚ฌ๋žŒ๋“ค์„ ํ•˜๋‚˜์˜ ์ง‘ํ•ฉ์œผ๋กœ ๊ตฌ์„ฑ ffind ํ•จ์ˆ˜๋กœ ํ•ด๋‹น ์›์†Œ์˜ parent ์›์†Œ๋ฅผ ์ฐพ๋Š”๋‹ค. union ํ•จ์ˆ˜๋กœ ์ง„์‹ค์„ ์•„๋Š” ์‚ฌ๋žŒ๋“ค๊ณผ ๊ทธ์™€ ๊ฐ™์ด ํŒŒํ‹ฐ์— ์˜ค๋Š” ์‚ฌ๋žŒ๋“ค(์—ฐ์‡„์ )์„ ํ•˜๋‚˜๋กœ ๋ฌถ๋Š”๋‹ค. - ์ž…๋ ฅ๋ฐ›์€ ๋‘ ์›์†Œ๊ฐ€ ๋ชจ๋‘ ์ง„์‹ค์„ ์•„๋Š” ์‚ฌ๋žŒ -> ๋ณ€ํ™” X - ๋‘˜ ์ค‘ ํ•œ ์›์†Œ๊ฐ€ ์ง„์‹ค์„ ์•„๋Š” ์‚ฌ๋žŒ -> ์ง„์‹ค์„ ์•„๋Š” ์‚ฌ๋žŒ์„ ๋ถ€๋ชจ๋กœ ๊ฐฑ์‹  - ๋‘˜ ๋‹ค ์ง„์‹ค์„ ์•„๋Š” ์‚ฌ๋žŒ์ด..
[BOJ/๋ฐฑ์ค€] 9742 ์ˆœ์—ด - ํŒŒ์ด์ฌ
ยท
๐Ÿ’ป ์•Œ๊ณ ๋ฆฌ์ฆ˜/PS
๋ฌธ์ œ https://www.acmicpc.net/problem/9742 9742๋ฒˆ: ์ˆœ์—ด ์ž…๋ ฅ์€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค. ๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋Š” ํ•œ ์ค„๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ๋ฌธ์ž์—ด์€ ์„œ๋กœ ๋‹ค๋ฅธ ์ˆซ์ž์™€ ์•ŒํŒŒ๋ฒณ์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์œผ๋ฉฐ, ๊ธธ์ด๋Š” ์ตœ๋Œ€ 10์ด๋‹ค. ๋˜ํ•œ, ์‚ฌ์ „ www.acmicpc.net ๋ฌธ์ œํ’€์ด bruteforce ๋ฌธ์ œ -์ฐพ๊ณ ์ž ํ•˜๋Š” ์ˆœ์„œ๊ฐ€ ๋ฌธ์ž์—ด์˜ ํŒฉํ† ๋ฆฌ์–ผ ๊ฐ’ ๋ณด๋‹ค ํด ๋•Œ, no permutation ์ถœ๋ ฅ -๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ solveํ•จ์ˆ˜ ์žฌ๊ท€์ ์œผ๋กœ ํ˜ธ์ถœ solve ํ•จ์ˆ˜ ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๊ฐ€ ์ž…๋ ฅ๋ฐ›์€ ๋ฌธ์ž์—ด๊ณผ ๊ฐ™๊ณ , ์›ํ•˜๋Š” ์ˆœ์„œ์˜ ๋ฌธ์ž์—ด์ผ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•œ๋‹ค. solve(s+k,i+1) ์œผ๋กœ ๋ฌธ์ž๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ๋ฌธ์ž์—ด ๊ธธ์ด๋ฅผ ๋Š˜๋ ค์ฃผ๋ฉด์„œ ์žฌ๊ท€์ ์œผ๋กœ ํ˜ธ์ถœ ์ฝ”๋“œ import sys input=sy..
[BOJ/๋ฐฑ์ค€] 2160 ๊ทธ๋ฆผ๋น„๊ต - ํŒŒ์ด์ฌ
ยท
๐Ÿ’ป ์•Œ๊ณ ๋ฆฌ์ฆ˜/PS
๋ฌธ์ œ https://www.acmicpc.net/problem/2160 2160๋ฒˆ: ๊ทธ๋ฆผ ๋น„๊ต N(2 ≤ N ≤ 50)๊ฐœ์˜ ๊ทธ๋ฆผ์ด ์žˆ๋‹ค. ๊ฐ๊ฐ์˜ ๊ทธ๋ฆผ์€ 5×7์˜ ํฌ๊ธฐ์ด๊ณ , ๋‘ ๊ฐ€์ง€ ์ƒ‰์œผ๋กœ ๋˜์–ด ์žˆ๋‹ค. ์ด๋•Œ ๋‘ ๊ฐ€์ง€์˜ ์ƒ‰์„ ๊ฐ๊ฐ ‘X’์™€ ‘.’์œผ๋กœ ํ‘œํ˜„ํ•˜๊ธฐ๋กœ ํ•˜์ž. ์ด๋Ÿฌํ•œ ๊ทธ๋ฆผ๋“ค์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, ๊ฐ€์žฅ ๋น„ www.acmicpc.net ๋ฌธ์ œํ’€์ด ๊ฐ„๋‹จํ•œ bruteforce ๋ฌธ์ œ์ด๋‹ค. ์ž…๋ ฅ๋ฐ›์€ ๊ทธ๋ฆผ์„ ํ•˜๋‚˜์”ฉ ๋น„๊ตํ•ด์„œ ๊ฐ ์›์†Œ๊ฐ€ ๊ฐ™์€ ๊ฐ’์ธ์ง€ ์•„๋‹Œ์ง€ ํ™•์ธํ•œ๋‹ค. ๊ฐ€์žฅ ๋น„์Šทํ•œ ๋‘ ๊ทธ๋ฆผ(๊ฐ’์ด ๋‹ค๋ฅธ ์›์†Œ๊ฐ€ ์ตœ์†Œ์ธ ๊ทธ๋ฆผ ๋‘๊ฐ€์ง€)์˜ ๋ฒˆํ˜ธ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ์ฝ”๋“œ import sys input=sys.stdin.readline n=int(input()) pic=[] for i in range(n): pic.append(list([inp..