λΆ„λ₯˜ 전체보기

    Chapter 3. μ—­ν• , μ±…μž„, ν˜‘λ ₯

    μ‘°μ˜ν˜Έλ‹˜μ˜ 였브젝트λ₯Ό 읽고 제 머릿속에 μžˆλŠ” λ‚΄μš©λ“€μ„ μ •λ¦¬ν•˜λ©° μž‘μ„±ν•œ κΈ€μž…λ‹ˆλ‹€. 객체 지ν–₯μ—μ„œ κ°€μž₯ μ€‘μš”ν•œ 것은 πŸ’‘ μ—­ν• , μ±…μž„, ν˜‘λ ₯이닀. 클래슀, 상속, 지연 바인딩과 같은 κ°œλ…μ€ κ΅¬ν˜„μ— 초점이 λ§žμΆ”μ–΄μ Έ 있기 λ•Œλ¬Έμ—, μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ κΈ°λŠ₯을 κ΅¬ν˜„ν•˜κΈ° μœ„ν•΄ μ–΄λ–€ ν˜‘λ ₯이 ν•„μš”ν•˜κ³  ν˜‘λ ₯을 μœ„ν•΄ μ–΄λ–€ μ—­ν• κ³Ό μ±…μž„μ΄ ν•„μš”ν•œμ§€ 고민을 ν•˜λŠ” 것이 더 μ€‘μš”ν•˜λ‹€. 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..

    Chapter 2. 객체지ν–₯ ν”„λ‘œκ·Έλž˜λ°

    μ‘°μ˜ν˜Έλ‹˜μ˜ 였브젝트λ₯Ό 읽고 제 머릿속에 μžˆλŠ” λ‚΄μš©λ“€μ„ μ •λ¦¬ν•˜λ©° μž‘μ„±ν•œ κΈ€μž…λ‹ˆλ‹€. 객체 지ν–₯ ν”„λ‘œκ·Έλž˜λ°μ„ ν•  λ•Œ, μœ λ…ν•΄μ•Όν•  뢀뢄은 λ‹€μŒκ³Ό κ°™λ‹€. μ–΄λ–€ ν΄λž˜μŠ€κ°€ ν•„μš”ν•œμ§€ κ³ λ―Όν•˜κΈ° 전에 μ–΄λ–€ 객체듀이 ν•„μš”ν•œμ§€ κ³ λ―Όν•΄μ•Όν•œλ‹€. μ½”λ“œλ‘œμ„œ 바라보기 전에 κΈ°λŠ₯이 λ™μž‘λ˜λŠ” λ©”μ»€λ‹ˆμ¦˜μ„ 잘 μƒκ°ν•˜λΌλŠ” 의미인 것 κ°™λ‹€. 객체λ₯Ό 고립된 쑴재둜 바라보지 말고 ν˜‘λ ₯에 μ°Έμ—¬ν•˜λŠ” ν˜‘λ ₯자둜 바라보아야 ν•œλ‹€. λ¬΄μž‘μ • 결합도λ₯Ό 쀄이렀고 λ…Έλ ₯ν•˜κΈ° 보닀 효율적으둜 ν˜‘λ ₯ν•˜κΈ° μœ„ν•œ 방법을 κ³ λ―Όν•˜λŠ” 것이 ν•„μš”ν•˜λ‹€. 클래슀의 경계λ₯Ό 잘 ꡬ뢄 지어야 ν•œλ‹€. Chapter 1μ—μ„œλ„ 많이 μ„€λͺ…ν–ˆλ“―이, κ°μ²΄λŠ” μžμ‹ μ˜ ν•„λ“œλ₯Ό μžμ‹ μ΄ κ΄€λ¦¬ν•˜λ„λ‘ ν•΄μ•Όν•˜λ©° 그러기 μœ„ν•΄μ„œλŠ” μΊ‘μŠν™”λ₯Ό 톡해 외뢀에 κ³΅κ°œν•˜μ§€ μ•ŠλŠ” 것이 μ’‹λ‹€. μ™ΈλΆ€μ—μ„œ 접근이 κ°€λŠ₯ν•œ λ©”μ„œλ“œλ₯Ό 톡해 κ°„μ ‘..

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

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

    Chapter 1. 객체, 섀계

    μ‘°μ˜ν˜Έλ‹˜μ˜ 였브젝트λ₯Ό 읽고 제 머릿속에 μžˆλŠ” λ‚΄μš©λ“€μ„ μ •λ¦¬ν•˜λ©° μž‘μ„±ν•œ κΈ€μž…λ‹ˆλ‹€. 변경에 μ·¨μ•½ν•œ μ½”λ“œ public class Theater { private TicketSeller ticketSeller; public Theater(TicketSeller ticketSeller) { this.ticketSeller = ticketSeller; } public void enter(Audience audience) { // κ΄€λžŒκ° 가방에 μ΄ˆλŒ€κΆŒμ΄ μžˆλ‹€λ©΄? if (audience.getBag().hasInvitation()) { Ticket ticket = ticketSeller.getTicketOffice().getTicket(); // ν‹°μΌ“ 제곡 audience.getBag().setTicket(ticket..

    [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] 909. Snakes and Ladders

    문제 νŒŒμ•… Boustrophedon μŠ€νƒ€μΌμ˜ n*n λ³΄λ“œκ°€ 주어진닀. ( (n-1,0) μ’Œν‘œμ—μ„œ μ‹œμž‘ν•œλ‹€. ) μ£Όμ‚¬μœ„μ— 따라 μ΅œλŒ€ 6칸을 이동할 수 μžˆλ‹€. λ§Œμ•½ λ±€μ΄λ‚˜ 사닀리λ₯Ό λ§Œλ‚˜λ©΄ λ±€μ΄λ‚˜ 사닀리λ₯Ό μ΄μš©ν•΄μ•Όν•œλ‹€. n^2 칸에 λ„λ‹¬ν–ˆμ„ λ•Œ, κ²Œμž„μ€ λλ‚œλ‹€. λ³΄λ“œ 값이 -1이 μ•„λ‹Œ 경우 λ±€μ΄λ‚˜ 사닀리가 μ‘΄μž¬ν•œλ‹€. λ±€μ΄λ‚˜ 사닀리인 경우 λ„μ°©ν•˜λŠ” λ³΄λ“œ 값이 κΈ°λ‘λ˜μ–΄μžˆλ‹€. λ±€μ΄λ‚˜ μ‚¬λ‹€λ¦¬λŠ” 1 λ˜λŠ” n^2 칸에 μ‘΄μž¬ν•˜μ§€ μ•Šκ³  μ—°μ†μœΌλ‘œ 이동할 수 μ—†λ‹€. n^2에 λ„λ‹¬ν•˜κΈ° μœ„ν•œ μ΅œμ†Œ 이동 횟수λ₯Ό λ°˜ν™˜ν•˜κ³ , λ„λ‹¬ν•˜μ§€ λͺ»ν•˜λ©΄ -1을 λ°˜ν™˜ν•œλ‹€. 풀이 1️⃣ 1차원 맡과 bfs λ₯Ό μ΄μš©ν•œ 방법 πŸ’‘ λ– μ˜€λ₯Έ Idea λ¨Όμ €, λ³΄λ“œνŒ μˆœμ„œκ°€ ν—·κ°ˆλ €μ„œ 이λ₯Ό 1차원 맡으둜 λ°”κΏ”μ„œ ν•΄κ²°ν•˜λ©΄ 간단할것이라 생각이 λ“€μ—ˆλ‹€. λ”°λΌμ„œ, 제일 μ•„..