관리 메뉴

λͺ©λ‘μ „체 κΈ€ (196)

JUINTINATION

λ°±μ€€ 2147번: 닀리 λ§Œλ“€κΈ°

문제 https://www.acmicpc.net/problem/2146 2146번: 닀리 λ§Œλ“€κΈ° μ—¬λŸ¬ μ„¬μœΌλ‘œ 이루어진 λ‚˜λΌκ°€ μžˆλ‹€. 이 λ‚˜λΌμ˜ λŒ€ν†΅λ Ήμ€ 섬을 μž‡λŠ” 닀리λ₯Ό λ§Œλ“€κ² λ‹€λŠ” κ³΅μ•½μœΌλ‘œ 인기λͺ°μ΄λ₯Ό ν•΄ 당선될 수 μžˆμ—ˆλ‹€. ν•˜μ§€λ§Œ 막상 λŒ€ν†΅λ Ήμ— μ·¨μž„ν•˜μž, 닀리λ₯Ό λ†“λŠ”λ‹€λŠ” 것이 아깝닀 www.acmicpc.net 풀이 μ—¬λŸ¬ μ„¬μœΌλ‘œ 이루어진 λ‚˜λΌμ—μ„œ ν•œ 섬과 λ‹€λ₯Έ 섬을 μž‡λŠ” 닀리 ν•˜λ‚˜λ₯Ό λ§Œλ“ λ‹€κ³  ν•  λ•Œ κ°€μž₯ 짧은 λ‹€λ¦¬μ˜ 길이λ₯Ό κ΅¬ν•˜λŠ” λ¬Έμ œμž…λ‹ˆλ‹€. μ΄λ•Œ 섬은 λ™μ„œλ‚¨λΆμœΌλ‘œ λΆ™μ–΄μžˆλŠ” 땅을 μ˜λ―Έν•©λ‹ˆλ‹€. μ ‘κ·Ό μ–΄λ–€ 섬과 λ‹€λ₯Έ 섬 사이λ₯Ό μž‡λŠ” 닀리λ₯Ό λ§Œλ“€μ–΄μ•Ό ν•˜λ―€λ‘œ 각 섬이 λ‹€λ₯Έ μ„¬μ΄λΌλŠ” 것을 ν‘œμ‹œν•΄μ•Ό ν•©λ‹ˆλ‹€. μ—¬λŸ¬ 가지 μ•Œκ³ λ¦¬μ¦˜μ„ μ‚¬μš©ν•  수 μžˆμ§€λ§Œ μ €λŠ” dfs μ•Œκ³ λ¦¬μ¦˜μ„ μ΄μš©ν•˜μ—¬ 각 섬에 번호λ₯Ό μ •ν•΄μ£Όμ—ˆμŠ΅λ‹ˆλ‹€. μž…λ ₯..

λ°±μ€€ 16964번: DFS μŠ€νŽ˜μ…œ 저지

문제 https://www.acmicpc.net/problem/16964 16964번: DFS μŠ€νŽ˜μ…œ 저지 첫째 쀄에 μ •μ μ˜ 수 N(2 ≤ N ≤ 100,000)이 주어진닀. λ‘˜μ§Έ 쀄뢀터 N-1개의 μ€„μ—λŠ” 트리의 κ°„μ„  정보가 주어진닀. λ§ˆμ§€λ§‰ μ€„μ—λŠ” DFS λ°©λ¬Έ μˆœμ„œκ°€ 주어진닀. DFS λ°©λ¬Έ μˆœμ„œλŠ” 항상 N개의 μ •μˆ˜λ‘œ 이루 www.acmicpc.net 풀이 μ§€λ‚œ BFS μŠ€νŽ˜μ…œ 저지 λ¬Έμ œμ— 이어 정점에 1λΆ€ν„° nκΉŒμ§€ λ²ˆν˜Έκ°€ 맀겨져 μžˆλŠ” μ–‘λ°©ν–₯ κ·Έλž˜ν”„λ₯Ό ν‘œν˜„ν•œ νŠΈλ¦¬κ°€ μžˆμ„ λ•Œ μ–΄λ–€ μˆ˜μ—΄μ΄ DFS μ•Œκ³ λ¦¬μ¦˜μ„ μ΄μš©ν–ˆμ„ λ•Œ ν•΄λ‹Ή μˆ˜μ—΄μ˜ μˆœμ„œλŒ€λ‘œ λ°©λ¬Έν•  수 μžˆλŠ”μ§€ ν™•μΈν•˜λŠ” λ¬Έμ œμž…λ‹ˆλ‹€. μ΄λ•Œ 정점을 λ°©λ¬Έν•˜λŠ” μˆœμ„œλŠ” μ€‘μš”ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. μ ‘κ·Ό BFS, DFS μ•Œκ³ λ¦¬μ¦˜μ€ 정점끼리 μ–΄λ–€ μˆœμ„œλ‘œ μ—°κ²°λΌμžˆλŠ”μ§€μ— 따라 λ°©λ¬Έ μˆœμ„œ..

λ°±μ€€ 16940번: BFS μŠ€νŽ˜μ…œ 저지

문제 https://www.acmicpc.net/problem/16940 16940번: BFS μŠ€νŽ˜μ…œ 저지 μ˜¬λ°”λ₯Έ μˆœμ„œλŠ” 1, 2, 3, 4와 1, 3, 2, 4κ°€ μžˆλ‹€. www.acmicpc.net 풀이 정점에 1λΆ€ν„° nκΉŒμ§€ λ²ˆν˜Έκ°€ 맀겨져 μžˆλŠ” μ–‘λ°©ν–₯ κ·Έλž˜ν”„λ₯Ό ν‘œν˜„ν•œ νŠΈλ¦¬κ°€ μžˆμ„ λ•Œ μ–΄λ–€ μˆ˜μ—΄μ΄ BFS μ•Œκ³ λ¦¬μ¦˜μ„ μ΄μš©ν–ˆμ„ λ•Œ ν•΄λ‹Ή μˆ˜μ—΄μ˜ μˆœμ„œλŒ€λ‘œ λ°©λ¬Έν•  수 μžˆλŠ”μ§€ ν™•μΈν•˜λŠ” λ¬Έμ œμž…λ‹ˆλ‹€. μ΄λ•Œ 정점을 λ°©λ¬Έν•˜λŠ” μˆœμ„œλŠ” μ€‘μš”ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. μ ‘κ·Ό BFS, DFS μ•Œκ³ λ¦¬μ¦˜μ€ 정점끼리 μ–΄λ–€ μˆœμ„œλ‘œ μ—°κ²°λΌμžˆλŠ”μ§€μ— 따라 λ°©λ¬Έ μˆœμ„œκ°€ λ‹¬λΌμ§‘λ‹ˆλ‹€. ν•˜μ§€λ§Œ 이 λ¬Έμ œμ—μ„œλŠ” λ°©λ¬Έ λ°©λ¬Έκ°€ λ¨Όμ € λ‚˜μ˜¨ 뒀에 이 μˆœμ„œλŒ€λ‘œ 좜λ ₯이 κ°€λŠ₯ν•œμ§€ 확인해야 ν•©λ‹ˆλ‹€. κ·Έλž˜μ„œ μ €λŠ” 정점에 μ—°κ²°λœ λ‹€λ₯Έ 정점듀을 ArrayList 배열인 list둜 ν‘œ..

λ°±μ€€ 16947번: μ„œμšΈ μ§€ν•˜μ²  2ν˜Έμ„ 

문제 https://www.acmicpc.net/problem/16947 16947번: μ„œμšΈ μ§€ν•˜μ²  2ν˜Έμ„  첫째 쀄에 μ—­μ˜ 개수 N(3 ≤ N ≤ 3,000)이 주어진닀. λ‘˜μ§Έ 쀄뢀터 N개의 μ€„μ—λŠ” μ—­κ³Ό 역을 μ—°κ²°ν•˜λŠ” κ΅¬κ°„μ˜ 정보가 주어진닀. 같은 ꡬ간이 μ—¬λŸ¬ 번 μ£Όμ–΄μ§€λŠ” κ²½μš°λŠ” μ—†κ³ , 역은 1λ²ˆλΆ€ν„° Nλ²ˆκΉŒμ§€ 번호 www.acmicpc.net 풀이 ν•œ μ—­μ—μ„œ μΆœλ°œν•΄μ„œ 계속 κ°€λ©΄ λ‹€μ‹œ μΆœλ°œν•œ μ—­μœΌλ‘œ λŒμ•„μ˜¬ 수 μžˆλŠ” 노선을 μˆœν™˜μ„ μ΄λΌκ³  ν•˜κ³  두 μ—­(정점) μ‚¬μ΄μ˜ κ±°λ¦¬λŠ” μ§€λ‚˜μ•Ό ν•˜λŠ” ꡬ간(κ°„μ„ )의 개수일 λ•Œ 1개의 μˆœν™˜μ„ κ³Ό 각 μ—­κ³Ό μˆœν™˜μ„  μ‚¬μ΄μ˜ 거리λ₯Ό κ΅¬ν•˜λŠ” λ¬Έμ œμž…λ‹ˆλ‹€. μ ‘κ·Ό dfsλ₯Ό μ΄μš©ν•˜μ—¬ λ°©λ¬Έν•œ 적이 μžˆλŠ” μ—­μœΌλ‘œ λ‹€μ‹œ λŒμ•„μ™”λ‹€λ©΄ ν•΄λ‹Ή 역을 κΈ°μ€€μœΌλ‘œ μˆœν™˜μ„ μ΄ λ§Œλ“€μ–΄μ§€κ³  κ·Έ μ•ˆμ— μžˆλŠ” λͺ¨λ“  역에 μˆœν™˜μ„ μ΄λΌ..