πŸ‘¨πŸ»‍πŸ’» PS/바킹독

    [JAVA] λ°±μ€€ 1507번 【G2.κΆκΈˆν•œ λ―Όν˜Έγ€‘

    문제 1507번: κΆκΈˆν•œ 민호 첫째 쀄에 λ„μ‹œμ˜ 개수 N(1 ≤ N ≤ 20)이 주어진닀. λ‘˜μ§Έ 쀄뢀터 N개의 쀄에 각각의 λ„μ‹œ 사이에 μ΄λ™ν•˜λŠ”λ° ν•„μš”ν•œ μ‹œκ°„μ΄ 주어진닀. Aμ—μ„œ B둜 κ°€λŠ” μ‹œκ°„κ³Ό Bμ—μ„œ A둜 κ°€λŠ” μ‹œκ°„μ€ κ°™λ‹€. 또, A와 B www.acmicpc.net 풀이 1️⃣ ν”Œλ‘œμ΄λ“œ μ•Œκ³ λ¦¬μ¦˜μ„ μ΄μš©ν•œ 풀이 πŸ’‘ μ°Έκ³ ν•œ Idea λ¨Όμ € μž…λ ₯으둜 μ£Όμ–΄μ§€λŠ” λΉ„μš© κ·Έλž˜ν”„κ°€ ν”Œλ‘œμ΄λ“œ μ•Œκ³ λ¦¬μ¦˜μ„ 이미 ν•œλ²ˆ 거친 λΉ„μš© κ·Έλž˜ν”„λΌκ³  μƒκ°ν•΄μ•Όν•œλ‹€. κ·Έλ¦¬κ³ λ‚˜μ„œ, 이 κ·Έλž˜ν”„λ₯Ό λ‹€μ‹œ λΆ„ν•΄λ₯Ό ν•΄μ•Όν•˜λŠ”λ° μ–΄λ–»κ²Œ λΆ„ν•΄ν•  수 μžˆμ„κΉŒ? ν”Œλ‘œμ΄λ“œ μ•Œκ³ λ¦¬μ¦˜μ˜ 경우 costs[u][v] = Math.min(costs[u][v], costs[u][m] + costs[m][v]);​ μœ„μ™€ 같이 uμ—μ„œ v둜 κ°€λŠ” λΉ„μš©λ³΄λ‹€, uμ—μ„œ m으둜 κ°„..

    [JAVA] λ°±μ€€ 13168번 【G3.λ‚΄μΌλ‘œ 여행】

    문제 13168번: λ‚΄μΌλ‘œ μ—¬ν–‰ 첫 번째 μ€„μ—λŠ” ν•œκ΅­μ— μžˆλŠ” λ„μ‹œμ˜ 수 N(1 ≤ N ≤ 100)κ³Ό 1인당 λ‚΄μΌλ‘œ ν‹°μΌ“μ˜ 가격 R(1 ≤ R ≤ 1,000,000)이 μ£Όμ–΄μ§‘λ‹ˆλ‹€. 두 번째 μ€„μ—λŠ” N개의 λ„μ‹œμ˜ 이름이 μ£Όμ–΄μ§‘λ‹ˆλ‹€. λ„μ‹œμ˜ 이름은 μ•ŒνŒŒλ²³ λŒ€μ†Œ www.acmicpc.net 풀이 1️⃣ ν”Œλ‘œμ΄λ“œ μ•Œκ³ λ¦¬μ¦˜κ³Ό ν•΄μ‹œλ₯Ό μ΄μš©ν•œ 풀이 πŸ’‘ λ– μ˜€λ₯Έ Idea λ¨Όμ €, ν”Œλ‘œμ΄λ“œ μ•Œκ³ λ¦¬μ¦˜μ„ μ‚¬μš©ν•΄μ„œ λ„μ‹œμ™€ λ„μ‹œκ°„ μ–΄λ–€ 경둜λ₯Ό 거치던 μ΅œμ†Œ λΉ„μš©μ„ ꡬ해야겠닀고 생각이 λ“€μ—ˆλ‹€. λ‹€λ§Œ, 이 문제의 경우 λ„μ‹œκ°€ μˆ«μžκ°€ μ•„λ‹Œ λ¬Έμžμ—΄μ˜ ν˜•νƒœλ‘œ 주어지기 λ•Œλ¬Έμ— λ„μ‹œλ₯Ό κ³ μœ ν•œ 숫자둜 λ³€ν™˜ν•˜μ—¬ ν”Œλ‘œμ΄λ“œ μ•Œκ³ λ¦¬μ¦˜μ„ μ‚¬μš©ν•΄μ•Όκ² λ‹€λŠ” 생각이 λ“€μ—ˆλ‹€. 1. λ¨Όμ €, μ£Όμ–΄μ§€λŠ” λ„μ‹œμ˜ 쀑볡이 μžˆμ„ 수 μžˆλ‹€κ³  ν–ˆμœΌλ―€λ‘œ 쀑볡을 μ œκ±°ν•œλ‹€. 쀑볡을 제거..

    [JAVA] λ°±μ€€ 2637번 【G2.μž₯λ‚œκ° 쑰립】

    문제 2637번: μž₯λ‚œκ° 쑰립 첫째 μ€„μ—λŠ” μžμ—°μˆ˜ N(3 ≤ N ≤ 100)이 μ£Όμ–΄μ§€λŠ”λ°, 1λΆ€ν„° N-1κΉŒμ§€λŠ” κΈ°λ³Έ λΆ€ν’ˆμ΄λ‚˜ 쀑간 λΆ€ν’ˆμ˜ 번호λ₯Ό λ‚˜νƒ€λ‚΄κ³ , N은 μ™„μ œν’ˆμ˜ 번호λ₯Ό λ‚˜νƒ€λ‚Έλ‹€. 그리고 κ·Έ λ‹€μŒ μ€„μ—λŠ” μžμ—°μˆ˜ M(3 ≤ M ≤ 100)이 μ£Ό www.acmicpc.net 풀이 1️⃣ μœ„μƒμ •λ ¬μ„ μ΄μš©ν•œ 풀이 πŸ’‘ λ– μ˜€λ₯Έ Idea 일단 λΆ€ν’ˆμ˜ 쑰립 μˆœμ„œκ°€ μžˆμœΌλ―€λ‘œ μœ„μƒ 정렬을 μ‚¬μš©ν•΄μ•Όν•œλ‹€λŠ” 것은 νŒŒμ•…ν–ˆλ‹€. 근데, μ›ν•˜λŠ” 좜λ ₯은 μ΅œμ’… μž₯λ‚œκ°μ„ κ΅¬μ„±ν•˜λŠ” κΈ°λ³Έ λΆ€ν’ˆμ˜ 수λ₯Ό 좜λ ₯ν•΄μ•Όν–ˆλ‹€. κΈ°λ³Έ λΆ€ν’ˆμ€ μ‘°ν•©λ˜μ–΄ λ§Œλ“€μ–΄μ§„ λΆ€ν’ˆμ΄ μ•„λ‹Œ 경우 κΈ°λ³Έ λΆ€ν’ˆμ΄λΌκ³  ν•œλ‹€. λ”°λΌμ„œ, νŠΉμ • λΆ€ν’ˆμ„ μ‘°λ¦½ν• λ•Œλ§ˆλ‹€ ν•΄λ‹Ή 쑰립 λΆ€ν’ˆμ„ κ΅¬μ„±ν•˜λŠ” κΈ°λ³Έ λΆ€ν’ˆμ˜ 정보λ₯Ό μ €μž₯ν•˜κ³  계속 λ„˜κ²¨μ£Όμ–΄μ•Όκ² λ‹€κ³  μƒκ°ν–ˆλ‹€. 일단, indegree 값이 0..

    [JAVA] λ°±μ€€ 21276번 【G2.계보 볡원가 ν˜Έμ„γ€‘

    문제 21276번: 계보 볡원가 ν˜Έμ„ μ„ν˜Έμ΄Œμ—λŠ” N λͺ…μ˜ μ‚¬λžŒμ΄ μ‚΄κ³  μžˆλ‹€. ꡉμž₯히 ν™œλ°œν•œ 성격인 μ„ν˜Έμ΄Œ μ‚¬λžŒλ“€μ€ μ˜† 집 상도 μ•„λ²„λ‹˜, 뒷집 ν•˜μ€ ν• λ¨Έλ‹˜ , κ°• κ±΄λ„ˆ 유리 μ–΄λ¨Έλ‹˜ λ“± λͺ¨λ‘κ°€ ν•œ κ°€μ‘±μ²˜λŸΌ μ‚΄μ•„κ°€κ³  μžˆλ‹€. 그러던 μ–΄λŠ λ‚  www.acmicpc.net 풀이 1️⃣ μœ„μƒ μ •λ ¬κ³Ό μš°μ„ μˆœμœ„ 큐λ₯Ό ν™œμš©ν•œ 풀이 πŸ’‘ λ– μ˜€λ₯Έ Idea 이 λ¬Έμ œμ—μ„œ κ°€μž₯ μ€‘μš”ν•œ ν¬μΈνŠΈλŠ” 직계 μžμ†μž„μ„ μ–΄λ–»κ²Œ νŒŒμ•…ν•˜λŠ”κ°€μ˜€λ‹€. haeun doha doha minji haeun minji μœ„μ™€ 같이 관계가 μ£Όμ–΄μ‘Œμ„ λ•Œ ν•˜μ€μ€ λ„ν•˜μ™€ λ―Όμ§€μ˜ μžμ†μ΄κ³  λ„ν•˜λŠ” λ―Όμ§€μ˜ μžμ†μž„μ„ μ•Œ 수 μžˆλŠ”λ° λ“€μ–΄μ˜€λŠ” κ°„μ„ μ˜ 수λ₯Ό 보면 민지 : 0 λ„ν•˜ : 1 ν•˜μ€ : 2 μž„μ„ μ•Œ 수 μžˆλ‹€. μœ„μƒ 정렬에 따라 μ •λ ¬ν•˜λ©΄ λ―Όμ§€μ—μ„œ μ‹œμž‘ν•΄μ„œ 민지와 μ—°κ²°λœ κ°„μ„ ..

    [JAVA] λ°±μ€€ 1967번 【G4.트리의 지름】

    문제 1967번: 트리의 지름 파일의 첫 번째 쀄은 λ…Έλ“œμ˜ 개수 n(1 ≤ n ≤ 10,000)이닀. λ‘˜μ§Έ 쀄뢀터 n-1개의 쀄에 각 간선에 λŒ€ν•œ 정보가 λ“€μ–΄μ˜¨λ‹€. 간선에 λŒ€ν•œ μ •λ³΄λŠ” μ„Έ 개의 μ •μˆ˜λ‘œ 이루어져 μžˆλ‹€. 첫 번째 μ •μˆ˜λŠ” 간선이 μ—° www.acmicpc.net 풀이 1️⃣ dfsλ₯Ό μ΄μš©ν•œ 풀이 πŸ’‘ λ– μ˜€λ₯Έ Idea μ²˜μŒμ—λŠ” λ¬Έμ œμ—μ„œ μΉœμ ˆν•˜κ²Œ λΆ€λͺ¨ λ…Έλ“œλ₯Ό λͺ…μ‹œν•΄μ„œ μ•Œλ €μ€˜μ„œ λ‹€λ₯Έ λ°©ν–₯으둜 많이 μƒκ°ν–ˆλ˜ 것 κ°™λ‹€. 근데, 이 λ¬Έμ œλŠ” λΆ€λͺ¨ λ…Έλ“œλ₯Ό νŠΉμ •ν•΄μ„œ 문제λ₯Ό ν’€κΈ°λ³΄λ‹€λŠ” λͺ¨λ“  λ…Έλ“œκ°€ 루트 λ…Έλ“œκ°€ 될 수 μžˆμŒμ„ κ°€μ •ν•΄μ„œ ν‘ΈλŠ” 것이 νŽΈλ¦¬ν•˜λ‹€. μ˜ˆμ‹œμ—μ„œ λ‚˜μ˜¨ 그림은 μœ„μ™€ 같은데 사싀 μœ„ 그림은 9 λ₯Ό μ΅œμƒλ‹¨ λ…Έλ“œλΌκ³  μƒκ°ν•˜κ³  그리면 μœ„μ™€ 같이 그렀질 수 μžˆλ‹€. 그리고 9 → 5 → 3 → 6 → 12 λ…Έλ“œ..

    [JAVA] λ°±μ€€ 2250번 【G2.트리의 높이와 λ„ˆλΉ„γ€‘

    문제 2250번: 트리의 높이와 λ„ˆλΉ„ 첫째 쀄에 λ…Έλ“œμ˜ 개수λ₯Ό λ‚˜νƒ€λ‚΄λŠ” μ •μˆ˜ N(1 ≤ N ≤ 10,000)이 주어진닀. λ‹€μŒ N개의 μ€„μ—λŠ” 각 μ€„λ§ˆλ‹€ λ…Έλ“œ λ²ˆν˜Έμ™€ ν•΄λ‹Ή λ…Έλ“œμ˜ μ™Όμͺ½ μžμ‹ λ…Έλ“œμ™€ 였λ₯Έμͺ½ μžμ‹ λ…Έλ“œμ˜ λ²ˆν˜Έκ°€ μˆœμ„œλŒ€λ‘œ 주어진닀. www.acmicpc.net 풀이 1️⃣ μ€‘μœ„μˆœνšŒλ₯Ό μ΄μš©ν•œ 풀이 πŸ’‘ λ– μ˜€λ₯Έ Idea μ€‘μœ„ μˆœνšŒλŠ” μœ„μ™€ 같이 트리의 λ…Έλ“œλ₯Ό μˆœνšŒν•˜λŠ” 방식이닀. μ€‘μœ„ 순회λ₯Ό μ‚¬μš©ν•˜λ©΄ νŠΈλ¦¬μ— μ‘΄μž¬ν•˜λŠ” 각 λ…Έλ“œμ˜ μ—΄ 값을 μ•Œ 수 μžˆλ‹€. 각 λ…Έλ“œμ˜ 깊이λ₯Ό μ²΄ν¬ν•΄λ‚˜κ°€λ©΄μ„œ μ€‘μœ„ 순회λ₯Ό ν•˜κ³ , 각 κΉŠμ΄μ— ν•΄λ‹Ήν•˜λŠ” μ—΄ κ°’μ˜ μ΅œμ†Ÿκ°’κ³Ό μ΅œλŒ“κ°’μ„ 기둝해두면 λœλ‹€. public class Main { static Node[] tree; static Map info = new HashMap(); static..

    [JAVA] λ°±μ€€ 20955번 【G4.λ―Όμ„œμ˜ 응급 μˆ˜μˆ γ€‘

    문제 20955번: λ―Όμ„œμ˜ 응급 수술 λ―Όμ„œλŠ” κ°•μ›λŒ€ν•™κ΅ μ»΄ν“¨ν„°κ³΅ν•™κ³Όμ˜ μ‹ μž„ κ΅μˆ˜μ΄λ‹€. κ·Έλ…€κ°€ μ €μˆ ν•œ 효율적인 택배 배달을 μœ„ν•œ 졜적 경둜 섀계에 κ΄€ν•œ 연ꡬ 논문은 아직도 널리 인용되고 μžˆλ‹€. μ˜€λŠ˜λ„ μ—΄μ‹¬νžˆ κ°•μ˜λ₯Ό ν•˜λ˜ λ―Όμ„œ www.acmicpc.net 풀이 1️⃣ 트리의 νŠΉμ§•κ³Ό bfs λ₯Ό μ΄μš©ν•œ 풀이 πŸ’‘ λ– μ˜€λ₯Έ Idea 이 λ¬Έμ œλŠ”, λ¬΄μž‘μœ„λ‘œ μ£Όμ–΄μ§€λŠ” λ…Έλ“œκ°„μ˜ 관계λ₯Ό νŠΈλ¦¬κ΄€κ³„λ‘œ ν’€μ–΄κ°€μ•Ό ν•˜λŠ” λ¬Έμ œμ΄λ‹€. λ¨Όμ €, 생각할 수 μžˆλŠ” κ²½μš°λŠ” λ‹€μŒκ³Ό κ°™λ‹€. 1. 정상적인 트리 ν˜•νƒœλ₯Ό 이루고 μžˆλŠ” 집합인 경우 2. νŠΉμ • λ…Έλ“œ 집합이 사이클을 이루고 μžˆλŠ” 경우 3. 1번 ν˜Ήμ€ 2번 같은 집합이 μ—°κ²°λ˜μ–΄μžˆμ§€ μ•Šκ³  λ–¨μ–΄μ Έ μžˆλŠ”κ²½μš° κ·Έλž˜μ„œ λͺ¨λ“  λ‰΄λŸ°μ„ ν•˜λ‚˜μ˜ 트리 ν˜•νƒœλ‘œ μ—°κ²°ν•˜κΈ° μœ„ν•œ 횟수λ₯Ό μ–΄λ–»κ²Œ κ΅¬ν•΄μ•Όν• κΉŒ κ³ λ―Όν–ˆλŠ”λ° λ¨Όμ €..

    [JAVA] λ°±μ€€ 22856번 【G4.트리 μˆœνšŒγ€‘

    문제 22856번: 트리 순회 λ…Έλ“œκ°€ $N$개인 이진 νŠΈλ¦¬κ°€ μžˆλ‹€. 트리λ₯Ό μ€‘μœ„ μˆœνšŒμ™€ μœ μ‚¬ν•˜κ²Œ μˆœνšŒν•˜λ €κ³  ν•œλ‹€. 이λ₯Ό μœ μ‚¬ μ€‘μœ„ 순회라고 ν•˜μž. 순회의 μ‹œμž‘μ€ 트리의 루트이고 순회의 끝은 μ€‘μœ„ μˆœνšŒν•  λ•Œ λ§ˆμ§€λ§‰ λ…Έλ“œμ΄λ‹€. www.acmicpc.net 풀이 1️⃣ 트리 클래슀λ₯Ό μ •μ˜ν•œ 풀이 πŸ’‘ λ– μ˜€λ₯Έ Idea μ²˜μŒμ—λŠ” 이 λ¬Έμ œμ—μ„œ μ •μ˜ν•œ μœ μ‚¬ μ€‘μœ„ 순회λ₯Ό λ˜‘κ°™μ΄ κ΅¬ν˜„ν•΄μ•Όν•˜λ‚˜ κ³ λ―Όν–ˆμ—ˆμ§€λ§Œ, κ·ΈλŸ¬μ§€ μ•Šκ³  μ‰½κ²Œ ν•΄κ²°ν•  수 μžˆμ—ˆλ‹€. 이 μœ μ‚¬ μ€‘μœ„ 순회의 νŠΉμ§•μ€ νŠΈλ¦¬μ—μ„œ 제일 였λ₯Έμͺ½ 간선은 ν•œλ²ˆλ§Œ μ§€λ‚˜κ°€κ²Œ λœλ‹€λŠ” νŠΉμ§•μ΄ μžˆλ‹€. λ”°λΌμ„œ, κ°€μž₯ 였λ₯Έμͺ½ μžμ‹λ§Œ μ§€λ‚˜κ°€κ²Œλ” ν•˜λŠ” 순회λ₯Ό μ •μ˜ν•˜μ—¬ λ…Έλ“œμ˜ 개수λ₯Ό κ΅¬ν–ˆκ³  κ°„μ„ μ˜ κ°œμˆ˜λŠ” λ…Έλ“œμ˜ 개수 -1 μž„μ„ μ΄μš©ν•˜μ—¬ νŽΈλ„ κ°„μ„ μ˜ 개수λ₯Ό ꡬ할 수 μžˆμ—ˆλ‹€. 그리고 (전체 λ…Έλ“œμ˜ ..

    [JAVA] λ°±μ€€ 5214번 【G2.ν™˜μŠΉγ€‘

    문제 5214번: ν™˜μŠΉ 첫째 쀄에 μ—­μ˜ 수 Nκ³Ό ν•œ ν•˜μ΄νΌνŠœλΈŒκ°€ μ„œλ‘œ μ—°κ²°ν•˜λŠ” μ—­μ˜ 개수 K, ν•˜μ΄νΌνŠœλΈŒμ˜ 개수 M이 주어진닀. (1 ≤ N ≤ 100,000, 1 ≤ K, M ≤ 1000) λ‹€μŒ M개 μ€„μ—λŠ” ν•˜μ΄νΌνŠœλΈŒμ˜ 정보가 ν•œ 쀄에 ν•˜λ‚˜μ”© μ£Όμ–΄ www.acmicpc.net 풀이 1️⃣ bfs와 μΈμ ‘λ¦¬μŠ€νŠΈλ₯Ό μ΄μš©ν•œ 풀이 πŸ’‘ μ°Έκ³ ν•œ Idea μ—­μ˜ 수 N이 μ΅œλŒ€ 100000 이고 ν•˜μ΄νΌ νŠœλΈŒμ™€ ν•˜μ΄νΌ νŠœλΈŒκ°€ μ—°κ²°ν•˜λŠ” μ—­μ˜ 개수 K 와 M이 μ΅œλŒ€ 1000 μ΄λΌμ„œ 일반적인 κ·Έλž˜ν”„λ₯Ό ν‘ΈλŠ” λ°©μ‹μœΌλ‘œ λ…Έλ“œλ₯Ό μ—°κ²°ν•˜λ©΄ μ‹œκ°„ λ³΅μž‘λ„κ°€ λ§λ„μ•ˆλ˜κ²Œ μ»€μ Έμ„œ 고민을 많이 ν–ˆλ‹€. 계속 λ©”λͺ¨λ¦¬ 초과λ₯Ό μ–΄λ–»κ²Œ 해결해야할지 κ³ λ―Όν•˜λ‹€κ°€ λ‹€λ₯Έ μ‚¬λžŒμ˜ 아이디어λ₯Ό μ°Έκ³ ν•˜μ˜€λ‹€. ν•˜μ΄νΌ 튜브λ₯Ό μΌμ’…μ˜ μ—­μœΌλ‘œμ„œ 생각을 ν•˜κ³  λ…Έλ“œλ‘œμ„œ μΆ”κ°€ν•˜λŠ” ..

    [JAVA] λ°±μ€€ 1043번 【G4.거짓말】

    문제 1043번: 거짓말 μ§€λ―Όμ΄λŠ” νŒŒν‹°μ— κ°€μ„œ 이야기 ν•˜λŠ” 것을 μ’‹μ•„ν•œλ‹€. νŒŒν‹°μ— 갈 λ•Œλ§ˆλ‹€, μ§€λ―Όμ΄λŠ” 지민이가 κ°€μž₯ μ’‹μ•„ν•˜λŠ” 이야기λ₯Ό ν•œλ‹€. μ§€λ―Όμ΄λŠ” κ·Έ 이야기λ₯Ό 말할 λ•Œ, μžˆλŠ” κ·ΈλŒ€λ‘œ μ§„μ‹€λ‘œ λ§ν•˜κ±°λ‚˜ μ—„μ²­λ‚˜κ²Œ www.acmicpc.net 풀이 1️⃣ ν”Œλ‘œμ΄λ“œ μ•Œκ³ λ¦¬μ¦˜μ„ μ΄μš©ν•œ 풀이 πŸ’‘ λ– μ˜€λ₯Έ Idea 이 λ¬Έμ œλŠ” νŒŒν‹°λ³„λ‘œ λ°”λ‘œ 체크λ₯Ό ν•  수 μ—†λŠ” 문제이고, λͺ¨λ“  νŒŒν‹°μ˜ 정보λ₯Ό μ²˜λ¦¬ν•œ λ‹€μŒμ— 개수λ₯Ό ꡬ할 수 μžˆλ‹€. κ·Έ μ΄μœ λŠ” 예제 처럼 4 5 1 1 1 1 1 2 1 3 1 4 2 4 1 μœ„μ™€ 같이 μ£Όμ–΄μ‘Œμ„ λ•Œ, 4번째 νŒŒν‹°μΈ 1 4 μ—μ„œλŠ” 4번이 진싀을 λͺ¨λ₯Όκ²ƒ κ°™μ§€λ§Œ 5번째 νŒŒν‹°μ—μ„œ 진싀을 μ•„λŠ” 1번이 4λ²ˆμ—κ²Œ μ•Œλ € 쀄 수 있기 λ•Œλ¬Έμ΄λ‹€. λ”°λΌμ„œ, 순차적으둜 νŒλ‹¨ν•  수 μ—†λ‹€. λ‚΄κ°€ μƒκ°ν•œ μ „λž΅μ€ 지민이..

    [JAVA] λ°±μ€€ 2617번 【G4.ꡬ슬 찾기】

    문제 2617번: ꡬ슬 μ°ΎκΈ° λͺ¨μ–‘은 κ°™μœΌλ‚˜, λ¬΄κ²Œκ°€ λͺ¨λ‘ λ‹€λ₯Έ N개의 ꡬ슬이 μžˆλ‹€. N은 ν™€μˆ˜μ΄λ©°, κ΅¬μŠ¬μ—λŠ” λ²ˆν˜Έκ°€ 1,2,...,N으둜 λΆ™μ–΄ μžˆλ‹€. 이 ꡬ슬 μ€‘μ—μ„œ λ¬΄κ²Œκ°€ μ „μ²΄μ˜ 쀑간인 (무게 μˆœμ„œλ‘œ (N+1)/2번째) κ΅¬μŠ¬μ„ μ°ΎκΈ° μœ„ν•΄μ„œ www.acmicpc.net 풀이 1️⃣ bfs와 Marble 클래슀 μ •μ˜λ₯Ό ν†΅ν•œ 풀이 πŸ’‘ λ– μ˜€λ₯Έ Idea 문제λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•œ 방법은 λ¬Έμ œμ— 거의 주어지닀 싢이 λ‚˜μ™€μžˆμ—ˆλ‹€. ꡬ슬이 총 5κ°œμΌλ•ŒλŠ” νŠΉμ • κ΅¬μŠ¬λ³΄λ‹€ κ°€λ²Όμš΄κ²Œ 3개 이상인 경우 쀑간이 될 수 μ—†κ³  무거운게 3개 이상인 κ²½μš°λŠ” 쀑간이 될 수 μ—†λ‹€. μ²˜μŒμ—λŠ” N이 μ§μˆ˜λ‘œλ„ μ£Όμ–΄μ§€λ‚˜ μ‹Άμ–΄μ„œ, 짝수인 κ²½μš°μ—λŠ” μ•½κ°„ 기쀀이 λ‹¬λžμ§€λ§Œ ν™€μˆ˜λ‘œλ§Œ 주어진닀고 ν–ˆμœΌλ―€λ‘œ νŠΉμ • ꡬ슬이, μƒλŒ€μ μœΌλ‘œ κ°€λ²Όμš΄ ꡬ슬이 (N+1)/2 개..

    [JAVA] λ°±μ€€ 1707번 【G4.이뢄 κ·Έλž˜ν”„γ€‘

    문제 1707번: 이뢄 κ·Έλž˜ν”„ μž…λ ₯은 μ—¬λŸ¬ 개의 ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€λ‘œ κ΅¬μ„±λ˜μ–΄ μžˆλŠ”λ°, 첫째 쀄에 ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€μ˜ 개수 Kκ°€ 주어진닀. 각 ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€μ˜ 첫째 μ€„μ—λŠ” κ·Έλž˜ν”„μ˜ μ •μ μ˜ 개수 V와 κ°„μ„ μ˜ 개수 Eκ°€ 빈 칸을 사이에 www.acmicpc.net 풀이 1️⃣ 이뢄 κ·Έλž˜ν”„μ˜ μ •μ˜μ™€ bfs λ₯Ό μ΄μš©ν•œ 풀이 μ˜ˆμ „μ— ν’€μ–΄λ΄€λ˜ λ¬Έμ œμ—¬μ„œ, 원리λ₯Ό μ‰½κ²Œ νŒŒμ•…ν•  수 μžˆμ—ˆλ‹€. 이전에도, ν•œμ°Έμ„ κ³ λ―Όν–ˆμ—ˆλ‹€κ°€ μ„œμΉ­ν•΄μ„œ ν’€μ—ˆμ—ˆλŠ”λ°, 이뢄 κ·Έλž˜ν”„λΌλŠ” 단어가 λ‚˜μ˜€λ©΄ 이 μ •μ˜λ₯Ό μƒκ°ν•΄μ•Όν•œλ‹€. 이뢄 κ·Έλž˜ν”„μΈμ§€ μ•„λ‹Œμ§€ 확인할 수 μžˆλŠ” νŠΉμ§• 쀑 ν•˜λ‚˜μΈ, λ…Έλ“œ κ·Έλž˜ν”„λ₯Ό 2개의 μƒ‰κΉ”λ‘œ μΉ ν–ˆμ„ λ•Œ, μΈμ ‘ν•˜λŠ” λ…Έλ“œλΌλ¦¬ 색이 κ²ΉμΉ˜μ§€ μ•Šκ²Œ 색칠할 수 μžˆμ„ λ•Œ, 이뢄 κ·Έλž˜ν”„κ°€ 될 수 μžˆλ‹€κ³  ν•œλ‹€. μœ„μ™€ 같은 그림처럼 말이닀. 아직 λ°©λ¬Έν•˜μ§€ μ•Š..

    [JAVA] λ°±μ€€ 2660번 【G5.회μž₯뽑기】

    문제 2660번: 회μž₯뽑기 μž…λ ₯의 첫째 μ€„μ—λŠ” νšŒμ›μ˜ μˆ˜κ°€ μžˆλ‹€. 단, νšŒμ›μ˜ μˆ˜λŠ” 50λͺ…을 λ„˜μ§€ μ•ŠλŠ”λ‹€. λ‘˜μ§Έ 쀄 μ΄ν›„λ‘œλŠ” ν•œ 쀄에 두 개의 νšŒμ›λ²ˆν˜Έκ°€ μžˆλŠ”λ°, 이것은 두 νšŒμ›μ΄ μ„œλ‘œ μΉœκ΅¬μž„μ„ λ‚˜νƒ€λ‚Έλ‹€. νšŒμ›λ²ˆν˜ΈλŠ” 1λΆ€ν„° www.acmicpc.net 풀이 1️⃣ ν”Œλ‘œμ΄λ“œ μ•Œκ³ λ¦¬μ¦˜ μ‚¬μš© πŸ’‘ λ– μ˜€λ₯Έ Idea μ²˜μŒμ— λ¬Έμ œκ°€ 'μ–΄λŠ νšŒμ›μ΄ λ‹€λ₯Έ λͺ¨λ“  νšŒμ›κ³Ό 친ꡬ이면, 이 νšŒμ›μ˜ μ μˆ˜λŠ” 1점이닀. μ–΄λŠ νšŒμ›μ˜ μ μˆ˜κ°€ 2점이면, λ‹€λ₯Έ λͺ¨λ“  νšŒμ›μ΄ μΉœκ΅¬μ΄κ±°λ‚˜ 친ꡬ의 μΉœκ΅¬μž„μ„ λ§ν•œλ‹€. λ˜ν•œ μ–΄λŠ νšŒμ›μ˜ μ μˆ˜κ°€ 3점이면, λ‹€λ₯Έ λͺ¨λ“  νšŒμ›μ΄ μΉœκ΅¬μ΄κ±°λ‚˜, 친ꡬ의 μΉœκ΅¬μ΄κ±°λ‚˜, 친ꡬ의 친ꡬ의 μΉœκ΅¬μž„μ„ λ§ν•œλ‹€.' 라고 λ‚˜μ™€μžˆμ–΄μ„œ μ΄ν•΄ν•˜κΈ°κ°€ νž˜λ“€μ—ˆμ—ˆλ‹€. 근데, 이 문제λ₯Ό μ§κ΄€μ μœΌλ‘œ μ΄ν•΄ν•΄λ³΄λ‹ˆ 'νŠΉμ • νšŒμ›μ΄ μžˆμ„ λ•Œ κ°€μž₯ 사이가 ..

    [JAVA] λ°±μ€€ 1781번 【G2.컡라면】

    문제 1781번: 컡라면 μƒμš± μ‘°κ΅λŠ” λ™ν˜Έμ—κ²Œ N개의 문제λ₯Ό μ£Όκ³ μ„œ, 각각의 문제λ₯Ό ν’€μ—ˆμ„ λ•Œ 컡라면을 λͺ‡ 개 쀄 것인지 μ œμ‹œ ν•˜μ˜€λ‹€. ν•˜μ§€λ§Œ λ™ν˜Έμ˜ 찌λ₯Όλ“―ν•œ μžμ‹ κ°μ— μ†Œμ‹¬ν•œ μƒμš± μ‘°κ΅λŠ” 각각의 λ¬Έμ œμ— λŒ€ν•΄ λ°λ“œλΌ www.acmicpc.net 풀이 1️⃣ μš°μ„  μˆœμœ„ 큐와 그리디λ₯Ό μ΄μš©ν•œ 풀이 πŸ’‘ λ– μ˜€λ₯Έ Idea 컡라면을 λ°λ“œλΌμΈμ΄ 짧고 컡라면을 많이 μ£ΌλŠ” λ¬Έμ œλΆ€ν„° κ²°μ •ν•΄μ„œ 큐에 μ§‘μ–΄λ„£λŠ”λ‹€. 즉, 큐의 크기 = ν’€κΈ°λ‘œ κ²°μ •ν•œ 문제 수 = λ‚΄κ°€ 문제λ₯Ό ν‘ΈλŠ”λ° μ‚¬μš©ν•œ μ‹œκ°„μ΄ λœλ‹€. 그리고, 이후에 λ‚˜μ˜€λŠ” λ¬Έμ œλ“€μ΄ λ‚΄ 큐의 크기보닀 ν¬κ±°λ‚˜ κ°™μœΌλ©΄μ„œ λ‚΄ 큐에 λ“€μ–΄μžˆλŠ” 컡라면보닀 많이 μ€€λ‹€λ©΄ λ‚΄ 큐에 λ“€μ–΄μžˆλ˜ κ°€μž₯ 컡라면을 적게 μ£ΌλŠ” 문제λ₯Ό μ œκ±°ν•˜κ³ , μΆ”κ°€ν•΄μ€€λ‹€. 예제둜 원리λ₯Ό μ„€λͺ…해보면, λ¨Όμ €, λ°λ“œλΌμΈμ΄ 짧은 ..

    [JAVA] λ°±μ€€ 1655번 【G2.κ°€μš΄λ°λ₯Ό λ§ν•΄μš”γ€‘

    문제 1655번: κ°€μš΄λ°λ₯Ό λ§ν•΄μš” 첫째 μ€„μ—λŠ” 백쀀이가 μ™ΈμΉ˜λŠ” μ •μˆ˜μ˜ 개수 N이 주어진닀. N은 1보닀 ν¬κ±°λ‚˜ κ°™κ³ , 100,000보닀 μž‘κ±°λ‚˜ 같은 μžμ—°μˆ˜μ΄λ‹€. κ·Έ λ‹€μŒ N쀄에 κ±Έμ³μ„œ 백쀀이가 μ™ΈμΉ˜λŠ” μ •μˆ˜κ°€ μ°¨λ‘€λŒ€λ‘œ 주어진닀. μ •μˆ˜λŠ” -1 www.acmicpc.net 풀이 1️⃣ μš°μ„  μˆœμœ„ 큐 λ‘κ°œλ₯Ό ν™œμš©ν•œ 풀이 πŸ’‘ λ– μ˜€λ₯Έ Idea μš°μ„  μˆœμœ„ νλŠ” 이진 νž™ λ°©μ‹μœΌλ‘œ κ΅¬μ„±λ˜μ–΄ 있기 λ•Œλ¬Έμ—, μ‚¬μš©ν•˜λ©΄ 정렬을 μœ μ§€ν•œ μ‚½μž… 과정을 O(logN) 에 μˆ˜ν–‰ν•  수 μžˆλ‹€. 그리고, μš°μ„  μˆœμœ„ 큐에 따라 μ •λ ¬λœ 데이터λ₯Ό κΊΌλ‚Ό λ•Œ μ—­μ‹œ, O(logN) 둜 μˆ˜ν–‰ν•  수 μžˆλ‹€. λ”°λΌμ„œ μš°μ„  μˆœμœ„ 큐λ₯Ό μ‚¬μš©ν•˜λŠ”κ²Œ μ‹œκ°„ λ³΅μž‘λ„λ₯Ό λ§Œμ‘±μ‹œν‚¬ 수 μžˆλ‹€κ³  νŒλ‹¨ν•˜μ˜€λ‹€. κ°€μš΄λ° 수λ₯Ό 항상 말해야 ν•˜λ―€λ‘œ, λ‚΄λ¦Όμ°¨μˆœμœΌλ‘œ μ •λ ¬λœ μš°μ„ μˆœμœ„ 큐 (l..