\
18111. λ§ˆμΈν¬λž˜ν”„νŠΈ
Β·
πŸ“š STUDY/자료ꡬ쑰 & μ•Œκ³ λ¦¬μ¦˜
https://www.acmicpc.net/problem/18111 이해 평탄화가 κ°€λŠ₯ν•œ 높이에 λŒ€ν•΄ λͺ¨λ“  경우의 수λ₯Ό 비ꡐ해가며 ν’€μ–΄μ•Όν•˜λŠ” λ¬Έμ œμ΄λ‹€. 문제λ₯Ό 읽어보면 μ•Œ 수 있 λ“―, 높이에 λŒ€ν•œ μΈλ±μŠ€κ°€ μ€‘μš”ν•˜μ§€ μ•Šμ•„ 2차원 배열이 μ•„λ‹Œ 1차원 λ°°μ—΄λ‘œ μž…λ ₯을 받아도 되고, Dictionary ν˜•νƒœλ‘œ 받아도 λœλ‹€. κ΅¬ν˜„ N*M 행렬을 높이에 λŒ€ν•œ Dictionary둜 μ •μ˜ collections λ‚΄λΆ€ defaultdictλ₯Ό ν™œμš© 높이에 λŒ€ν•΄ μŒ“μ„ λΈ”λŸ­ μˆ˜μ™€ λΆ€μˆ  λΈ”λŸ­ 수λ₯Ό λ”°λ‘œ μ €μž₯ν•˜μ—¬ 계산 μ‹μœΌλ‘œ 풀이 λ§Œλ“€ 수 μžˆλŠ”κ°€? πŸ‘‰ (λΆ€μˆ  λΈ”λŸ­ 수) + (졜초 인벀토리 λΈ”λŸ­ 수) >= (μŒ“λŠ” λΈ”λŸ­ 수) κ±Έλ¦¬λŠ” μ‹œκ°„ πŸ‘‰ (λΆ€μˆ  λΈ”λŸ­ 수) + 2 * (μŒ“λŠ” λΈ”λŸ­ 수) κ±Έλ¦¬λŠ” μ΅œμ†Œ μ‹œκ°„ μ €μž₯ 및 μ΅œμ†Œ μ‹œκ°„ 쀑볡 μ‹œ 졜..
[μ•Œκ³ λ¦¬μ¦˜] Union-Find
Β·
πŸ“š STUDY/자료ꡬ쑰 & μ•Œκ³ λ¦¬μ¦˜
κ°œλ… κ·Έλž˜ν”„ 이둠으둜, μƒν˜Έ 배타적 μ§‘ν•©(μ„œλ‘œμ†Œμ§‘ν•©:Disjoint-Set) μ•Œκ³ λ¦¬μ¦˜μ΄λΌκ³ λ„ 뢀름 주둜 크루슀칼(Krusckal) μ•Œκ³ λ¦¬μ¦˜μ—μ„œ μ‚¬μš©ν•˜λ©°, μˆœν™˜ν•˜μ§€ μ•ŠλŠ” 트리 λ₯Ό λ§Œλ“€κΈ° μœ„ν•΄ μ‚¬μš© λ‹¨κ³„λ³„λ‘œ μ΄ν•΄ν•˜κΈ° λ§Œμ•½ μ•„λž˜ ν‘œμ™€ 같이 4개의 λ…Έλ“œλ₯Ό κ°€μ§„ μ„œλ‘œμ†Œ 집합이 μžˆλ‹€λ©΄, λ…Έλ“œ 번호 1 2 3 4 λŒ€ν‘œ 번호 1 2 3 4 1번과 2번이 같은 집합이라면? λŒ€ν‘œλ²ˆν˜Έλ₯Ό λ³€κ²½ν•˜μ—¬ 같은 집합을 ν‘œν˜„ν•  수 있음 Union κ²°κ³Ό λ…Έλ“œ 번호 1 2 3 4 λŒ€ν‘œ 번호 1 1 3 4 μ•„λž˜ ν‘œμ™€ 같이 μžˆμ„ λ•Œ 2λ²ˆμ€ μ–΄λ–€ 집합에 μžˆλŠ”μ§€ μ•Œ 수 μ—†μ„κΉŒ? λ…Έλ“œ 번호 1 2 3 4 λŒ€ν‘œ 번호 1 3 4 1 λ…Έλ“œ 번호λ₯Ό 따라가며 확인할 수 있음 2번 πŸ‘‰ 3번 πŸ‘‰ 4번 πŸ‘‰ 1번 (λͺ¨λ‘ 같은 μ§‘ν•©) Find λ‹€λ₯Έ ν‘œν˜„ λ…Έλ“œ 번호 ..
1717. μ§‘ν•©μ˜ ν‘œν˜„
Β·
πŸ“š STUDY/자료ꡬ쑰 & μ•Œκ³ λ¦¬μ¦˜
https://www.acmicpc.net/problem/1717 문제 해석 ν•©μ§‘ν•©κ³Ό 같은 집합인지 ν™•μΈν•˜λŠ” 문제둜 뢄리집합(Union-Find)의 λŒ€ν‘œμ μΈ λ¬Έμ œμ΄λ‹€. κ΅¬ν˜„ 방법 총 3λ‹¨κ³„λ‘œ λ‚˜λˆ„μ–΄ κ΅¬ν˜„ Rootλ₯Ό μ €μž₯ν•  λ°°μ—΄ μ΄ˆκΈ°ν™” Find ν•¨μˆ˜ μž‘μ„± 같은 Rootλ₯Ό κ°€μ§€κ³  μžˆλŠ”μ§€ 확인( 같은 집합인가 확인) Union ν•¨μˆ˜ μž‘μ„± μ„œλ‘œ λ‹€λ₯Έ 두 집합을 ν•©μ§‘ν•© (Root λ₯Ό κ°™κ²Œ 함) 이미 κ°™μœΌλ©΄ ν•  ν•„μš” μ—†μŒ μ½”λ“œ # 1717 μ§‘ν•©μ˜ ν‘œν˜„ import sys input = sys.stdin.readline def find(num:int)->int: if parent[num] == num: return num parent[num] = find(parent[num]) return parent[num] de..
13994. μƒˆλ‘œμš΄ λ²„μŠ€ λ…Έμ„ 
Β·
πŸ“š STUDY/자료ꡬ쑰 & μ•Œκ³ λ¦¬μ¦˜
D2 Problem SW Expert Academy μƒˆλ‘œμš΄ λ²„μŠ€ λ…Έμ„  SW Expert Academy SW ν”„λ‘œκ·Έλž˜λ° μ—­λŸ‰ 강화에 도움이 λ˜λŠ” λ‹€μ–‘ν•œ ν•™μŠ΅ 컨텐츠λ₯Ό ν™•μΈν•˜μ„Έμš”! swexpertacademy.com Solution 1. 1λ²ˆλΆ€ν„° 1000λ²ˆκΉŒμ§€ λ²„μŠ€μ •λ₯˜μž₯이 μ •ν•΄μ Έ μžˆμœΌλ―€λ‘œ λ²„μŠ€μ •λ₯˜μž₯ 리슀트λ₯Ό λ§Œλ“€μ–΄ μš΄μš©ν•˜μž 2. 일반, κΈ‰ν–‰, κ΄‘μ—­ λ²„μŠ€ 별 쑰건이 λ‚˜λˆ μ Έμžˆμ§€λ§Œ, 결과적으둜 μ§€λ‚˜κ°€λŠ” 곳을 μ²΄ν¬ν•œ ν›„ μ΅œλŒ“κ°’μ„ κ΅¬ν•˜λ©΄ λœλ‹€. 3. 쑰건을 ν™•μΈν•˜μž. - μΌλ°˜λ²„μŠ€: λͺ¨λ‘ μ§€λ‚˜κ° - κΈ‰ν–‰λ²„μŠ€: μ‹œμž‘μ΄ 짝수/ν™€μˆ˜ 에 따라 짝수/ν™€μˆ˜ 번만 μ§€λ‚˜κ°„λ‹€. - κ΄‘μ—­λ²„μŠ€: - ν™€μˆ˜: 3의 λ°°μˆ˜μ΄λ©΄μ„œ 10λ°°μˆ˜κ°€ μ•„λ‹Œ κ³³ - 짝수: 4의 배수인 κ³³ - 단, μ‹œμž‘μ κ³Ό 끝점은 λ°˜λ“œμ‹œ ν¬ν•¨λœλ‹€! λ”°λΌμ„œ μ‹œμž‘κ³Ό 끝점 쑰건을 ..
4613. λŸ¬μ‹œμ•„ κ΅­κΈ° 같은 κΉƒλ°œ
Β·
πŸ“š STUDY/자료ꡬ쑰 & μ•Œκ³ λ¦¬μ¦˜
D4 problem SW Expert Academy λŸ¬μ‹œμ•„ κ΅­κΈ° 같은 κΉƒλ°œ SW Expert Academy SW ν”„λ‘œκ·Έλž˜λ° μ—­λŸ‰ 강화에 도움이 λ˜λŠ” λ‹€μ–‘ν•œ ν•™μŠ΅ 컨텐츠λ₯Ό ν™•μΈν•˜μ„Έμš”! swexpertacademy.com Solution 1. 흰색, νŒŒλž€μƒ‰, λΉ¨κ°„μƒ‰μ˜ λ²”μœ„λ₯Ό λ°˜λ“œμ‹œ λ‚˜λˆ μ•Όν•˜λ©°, 이 쀑 λ³€κ²½ν•  곳의 μ΅œμ†Ÿκ°’μ„ μ°ΎλŠ”λ‹€. 2. λ²”μœ„λ₯Ό 완전탐색을 톡해 ν•˜λ‚˜μ”© μˆ˜μ •ν•  곳을 ν™•μΈν•˜μ—¬ 이 쀑 μ΅œμ†Ÿκ°’μ„ μ°ΎλŠ”λ‹€. Code def color(i,j,N): # White λ²”μœ„ = 0 ~ i # Blue λ²”μœ„ = i+1 ~ j # Red λ²”μœ„ = j+1 ~ N-1 white = blue = red = 0# 각각의 개수(ν•˜λ‚˜λ‘œ 묢어도 됌) # white for k in range(i+1): for l in range..
1210. [S/W λ¬Έμ œν•΄κ²° κΈ°λ³Έ] 2일차 - Ladder1
Β·
πŸ“š STUDY/자료ꡬ쑰 & μ•Œκ³ λ¦¬μ¦˜
D4 Problem SW Expert Academy Ladder1 SW Expert Academy SW ν”„λ‘œκ·Έλž˜λ° μ—­λŸ‰ 강화에 도움이 λ˜λŠ” λ‹€μ–‘ν•œ ν•™μŠ΅ 컨텐츠λ₯Ό ν™•μΈν•˜μ„Έμš”! swexpertacademy.com Solution μ‹œμž‘μ€ μ—¬λŸ¬ 곳일 수 μžˆμ§€λ§Œ, 끝은 ν•˜λ‚˜μΈ 경우 끝뢀터 μ‹œμž‘ν•˜λ©΄ νŽΈν•˜λ‹€. 1. μ‹œμž‘ μœ„μΉ˜λ₯Ό μ•„λž˜μ—μ„œ μ°ΎλŠ”λ‹€. 2. μ‹œμž‘ μœ„μΉ˜λ₯Ό κΈ°μ€€μœΌλ‘œ 1을 λ”°λΌμ„œ κ°„λ‹€. 3. μš°μ„ μˆœμœ„κ°€ μœ„λ³΄λ‹€ 쒌, μš°μ— μžˆμœΌλ―€λ‘œ 쒌, μš°λΆ€ν„° νƒμƒ‰ν•œλ‹€. 4. μ§€λ‚˜μ˜¨ 곳을 탐색할 수 없도둝, μ§€λ‚˜μ˜¨ 곳을 ν‘œμ‹œν•œλ‹€.(μ§€μ›Œλ„ λœλ‹€.) Code for test_case in range(1, 11): T = int(input()) # 인덱싱을 νŽΈν•˜κ²Œ ν•˜κΈ°μœ„ν•œ 0 νŒ¨λ”© ladder = [[0] + list(map(int, i..