λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

Computer Science/Problem Solving17

[BOJ] 2217번: λ‘œν”„ 문제 N(1 ≤ N ≤ 100,000)개의 λ‘œν”„κ°€ μžˆλ‹€. 이 λ‘œν”„λ₯Ό μ΄μš©ν•˜μ—¬ 이런 μ €λŸ° 물체λ₯Ό λ“€μ–΄μ˜¬λ¦΄ 수 μžˆλ‹€. 각각의 λ‘œν”„λŠ” κ·Έ κ΅΅κΈ°λ‚˜ 길이가 λ‹€λ₯΄κΈ° λ•Œλ¬Έμ— λ“€ 수 μžˆλŠ” 물체의 μ€‘λŸ‰μ΄ μ„œλ‘œ λ‹€λ₯Ό μˆ˜λ„ μžˆλ‹€. ν•˜μ§€λ§Œ μ—¬λŸ¬ 개의 λ‘œν”„λ₯Ό λ³‘λ ¬λ‘œ μ—°κ²°ν•˜λ©΄ 각각의 λ‘œν”„μ— κ±Έλ¦¬λŠ” μ€‘λŸ‰μ„ λ‚˜λˆŒ 수 μžˆλ‹€. k개의 λ‘œν”„λ₯Ό μ‚¬μš©ν•˜μ—¬ μ€‘λŸ‰μ΄ w인 물체λ₯Ό λ“€μ–΄μ˜¬λ¦΄ λ•Œ, 각각의 λ‘œν”„μ—λŠ” λͺ¨λ‘ κ³ λ₯΄κ²Œ w/k 만큼의 μ€‘λŸ‰μ΄ 걸리게 λœλ‹€. 각 λ‘œν”„λ“€μ— λŒ€ν•œ 정보가 μ£Όμ–΄μ‘Œμ„ λ•Œ, 이 λ‘œν”„λ“€μ„ μ΄μš©ν•˜μ—¬ λ“€μ–΄μ˜¬λ¦΄ 수 μžˆλŠ” 물체의 μ΅œλŒ€ μ€‘λŸ‰μ„ κ΅¬ν•΄λ‚΄λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€. λͺ¨λ“  λ‘œν”„λ₯Ό μ‚¬μš©ν•΄μ•Ό ν•  ν•„μš”λŠ” μ—†μœΌλ©°, μž„μ˜λ‘œ λͺ‡ 개의 λ‘œν”„λ₯Ό κ³¨λΌμ„œ μ‚¬μš©ν•΄λ„ λœλ‹€. μž…μΆœλ ₯ μ˜ˆμ‹œ 풀이 ν’€κ³  λ‚˜μ„œ λ°”λ‘œ μ •λ¦¬ν–ˆμ–΄μ•Ό ν•˜λŠ”λ° μ‹œκ°„μ΄ μ’€ μ§€λ‚˜μ„œ κ·Έ λ‹Ή.. 2024. 2. 25.
[BOJ] 14501번: 퇴사 문제 μƒλ‹΄μ›μœΌλ‘œ μΌν•˜κ³  μžˆλŠ” λ°±μ€€μ΄λŠ” 퇴사λ₯Ό ν•˜λ €κ³  ν•œλ‹€. μ˜€λŠ˜λΆ€ν„° N+1일째 λ˜λŠ” λ‚  퇴사λ₯Ό ν•˜κΈ° μœ„ν•΄μ„œ, 남은 N일 λ™μ•ˆ μ΅œλŒ€ν•œ λ§Žμ€ 상담을 ν•˜λ €κ³  ν•œλ‹€. λ°±μ€€μ΄λŠ” λΉ„μ„œμ—κ²Œ μ΅œλŒ€ν•œ λ§Žμ€ 상담을 작으라고 뢀탁을 ν–ˆκ³ , λΉ„μ„œλŠ” ν•˜λ£¨μ— ν•˜λ‚˜μ”© μ„œλ‘œ λ‹€λ₯Έ μ‚¬λžŒμ˜ 상담을 μž‘μ•„λ†“μ•˜λ‹€. 각각의 상담은 상담을 μ™„λ£Œν•˜λŠ”λ° κ±Έλ¦¬λŠ” κΈ°κ°„ $T_{i}$와 상담을 ν–ˆμ„ λ•Œ 받을 수 μžˆλŠ” κΈˆμ•‘ $P_{i}$둜 이루어져 μžˆλ‹€. N = 7인 κ²½μš°μ— λ‹€μŒκ³Ό 같은 상담 μΌμ •ν‘œλ₯Ό 보자. 1일에 μž‘ν˜€μžˆλŠ” 상담은 총 3일이 걸리며, μƒλ‹΄ν–ˆμ„ λ•Œ 받을 수 μžˆλŠ” κΈˆμ•‘μ€ 10이닀. 5일에 μž‘ν˜€μžˆλŠ” 상담은 총 2일이 걸리며, 받을 수 μžˆλŠ” κΈˆμ•‘μ€ 15이닀. 상담을 ν•˜λŠ”λ° ν•„μš”ν•œ 기간은 1일보닀 클 수 있기 λ•Œλ¬Έμ—, λͺ¨λ“  상담을 ν•  μˆ˜λŠ” μ—†λ‹€. .. 2024. 2. 5.
[BOJ] 2960번: RESETO 문제 μ—λΌν† μŠ€ν…Œλ„€μŠ€μ˜ μ²΄λŠ” N보닀 μž‘κ±°λ‚˜ 같은 λͺ¨λ“  μ†Œμˆ˜λ₯Ό μ°ΎλŠ” 유λͺ…ν•œ μ•Œκ³ λ¦¬μ¦˜μ΄λ‹€. 이 μ•Œκ³ λ¦¬μ¦˜μ€ λ‹€μŒκ³Ό κ°™λ‹€. 2λΆ€ν„° NκΉŒμ§€ λͺ¨λ“  μ •μˆ˜λ₯Ό μ λŠ”λ‹€. 아직 μ§€μš°μ§€ μ•Šμ€ 수 쀑 κ°€μž₯ μž‘μ€ 수λ₯Ό μ°ΎλŠ”λ‹€. 이것을 P라고 ν•˜κ³ , 이 μˆ˜λŠ” μ†Œμˆ˜μ΄λ‹€. Pλ₯Ό μ§€μš°κ³ , 아직 μ§€μš°μ§€ μ•Šμ€ P의 배수λ₯Ό 크기 μˆœμ„œλŒ€λ‘œ μ§€μš΄λ‹€. 아직 λͺ¨λ“  수λ₯Ό μ§€μš°μ§€ μ•Šμ•˜λ‹€λ©΄, λ‹€μ‹œ 2번 λ‹¨κ³„λ‘œ κ°„λ‹€. N, Kκ°€ μ£Όμ–΄μ‘Œμ„ λ•Œ, K번째 μ§€μš°λŠ” 수λ₯Ό κ΅¬ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€. μž…μΆœλ ₯ μ˜ˆμ‹œ 풀이 μ—λΌν† μŠ€ν…Œλ„€μŠ€μ˜ μ²΄λŠ” ꡉμž₯히 유λͺ…ν•œ μœ ν˜•μž„μ—λ„ λΆˆκ΅¬ν•˜κ³  λ³Ό λ•Œλ§ˆλ‹€ μƒˆλ‘œμš΄ λŠλ‚Œμ΄λ‹€. 풀이λ₯Ό μ™„μ „νžˆ μ™Έμ›Œλ‘λ˜κ°€ ν•΄μ•Όκ² λ‹€. μ•„λž˜λŠ” 문제λ₯Ό 보고 λ‚΄ 머릿속에 λ– μ˜¬λžλ˜ 생각듀이닀. β—Ύ μ§€μ›Œμ§„ μˆ«μžκ°€ λͺ‡ λ²ˆμ§ΈμΈμ§€ μ„ΈκΈ° μœ„ν•œ λ³€μˆ˜κ°€ ν•„μš”ν•¨ → cnt λ³€μˆ˜ μ •μ˜ .. 2024. 1. 18.
[BOJ] 15686번: μΉ˜ν‚¨ 배달 문제 크기가 N×N인 λ„μ‹œκ°€ μžˆλ‹€. λ„μ‹œλŠ” 1×1크기의 칸으둜 λ‚˜λˆ„μ–΄μ Έ μžˆλ‹€. λ„μ‹œμ˜ 각 칸은 빈 μΉΈ, μΉ˜ν‚¨μ§‘, 집 쀑 ν•˜λ‚˜μ΄λ‹€. λ„μ‹œμ˜ 칸은 (r, c)와 같은 ν˜•νƒœλ‘œ λ‚˜νƒ€λ‚΄κ³ , rν–‰ cμ—΄ λ˜λŠ” μœ„μ—μ„œλΆ€ν„° r번째 μΉΈ, μ™Όμͺ½μ—μ„œλΆ€ν„° c번째 칸을 μ˜λ―Έν•œλ‹€. rκ³Ό cλŠ” 1λΆ€ν„° μ‹œμž‘ν•œλ‹€. 이 λ„μ‹œμ— μ‚¬λŠ” μ‚¬λžŒλ“€μ€ μΉ˜ν‚¨μ„ 맀우 μ’‹μ•„ν•œλ‹€. λ”°λΌμ„œ, μ‚¬λžŒλ“€μ€ "μΉ˜ν‚¨ 거리"λΌλŠ” 말을 주둜 μ‚¬μš©ν•œλ‹€. μΉ˜ν‚¨ κ±°λ¦¬λŠ” 집과 κ°€μž₯ κ°€κΉŒμš΄ μΉ˜ν‚¨μ§‘ μ‚¬μ΄μ˜ 거리이닀. 즉, μΉ˜ν‚¨ κ±°λ¦¬λŠ” 집을 κΈ°μ€€μœΌλ‘œ 정해지며, 각각의 집은 μΉ˜ν‚¨ 거리λ₯Ό 가지고 μžˆλ‹€. λ„μ‹œμ˜ μΉ˜ν‚¨ κ±°λ¦¬λŠ” λͺ¨λ“  μ§‘μ˜ μΉ˜ν‚¨ 거리의 합이닀. μž„μ˜μ˜ 두 μΉΈ (r1, c1)κ³Ό (r2, c2) μ‚¬μ΄μ˜ κ±°λ¦¬λŠ” |r1-r2| + |c1-c2|둜 κ΅¬ν•œλ‹€. 예λ₯Ό λ“€μ–΄, μ•„λž˜μ™€ 같은 지.. 2024. 1. 16.
[BOJ] 1789번: μˆ˜λ“€μ˜ ν•© 문제 μ„œλ‘œ λ‹€λ₯Έ N개의 μžμ—°μˆ˜μ˜ 합이 S라고 ν•œλ‹€. Sλ₯Ό μ•Œ λ•Œ, μžμ—°μˆ˜ N의 μ΅œλŒ“κ°’μ€ μ–Όλ§ˆμΌκΉŒ? μž…μΆœλ ₯ μ˜ˆμ‹œ 풀이 μž…μΆœλ ₯이 ꡉμž₯히 κ°„λ‹¨ν•˜κ³  solved.ac κΈ°μ€€ 티어도 높진 μ•Šμ§€λ§Œ λ‚΄ κΈ°μ€€ ν₯미둜운 λ¬Έμ œμ—¬μ„œ 정리해둔닀. λ¬Έμ œμ™€ μ˜ˆμ‹œκ°€ 짧긴 ν–ˆμœΌλ‚˜ μ΄ν•΄ν•˜λŠ” 데에 였래 κ±Έλ¦¬μ§€λŠ” μ•Šμ•˜λ‹€. 문제λ₯Ό 보자마자 λ‚΄ 머릿속에 λ– μ˜€λ₯Έ 생각은 μ•„λž˜μ™€ κ°™λ‹€. Step. 1) Sλ₯Ό μ–΄λ–»κ²Œ ꡬ성할 것인가? N을 μ΅œλŒ€λ‘œ λ§Œλ“€κΈ° μœ„ν•΄μ„œλŠ” μž‘μ€ μˆ˜λ“€λΆ€ν„° κ³ λ €ν•΄μ•Ό ν•œλ‹€. 즉, λͺ‡ 개의 숫자λ₯Ό 더해 200을 λ§Œλ“œλ €κ³  ν•  λ•Œ 99, 101 μ‘°ν•©λ³΄λ‹€λŠ” 5, 10, 25, ..., 90κ³Ό 같은 쑰합이 쒋은 것! Step. 2) μž‘μ€ μˆ˜λ“€λΆ€ν„° κ³ λ €ν•˜λŠ” 방법은? μ—¬κΈ°μ„œ DP κ°œλ…μ΄ 살짝 μ–Ήμ–΄μ§€κ²Œ λ˜λŠ”λ°γ…‘ 일단 1λΆ€ν„° μˆœμ„œλŒ€λ‘œ 계속 수λ₯Ό 더해.. 2024. 1. 2.
[BOJ] 1475번: λ°© 번호 문제 λ‹€μ†œμ΄λŠ” μ€μ§„μ΄μ˜ μ˜†μ§‘μ— μƒˆλ‘œ 이사왔닀. λ‹€μ†œμ΄λŠ” 자기 λ°© 번호λ₯Ό 예쁜 ν”ŒλΌμŠ€ν‹± 숫자둜 문에 뢙이렀고 ν•œλ‹€. λ‹€μ†œμ΄μ˜ μ˜†μ§‘μ—μ„œλŠ” ν”ŒλΌμŠ€ν‹± 숫자λ₯Ό ν•œ μ„ΈνŠΈλ‘œ νŒλ‹€. ν•œ μ„ΈνŠΈμ—λŠ” 0λ²ˆλΆ€ν„° 9λ²ˆκΉŒμ§€ μˆ«μžκ°€ ν•˜λ‚˜μ”© λ“€μ–΄μžˆλ‹€. λ‹€μ†œμ΄μ˜ λ°© λ²ˆν˜Έκ°€ μ£Όμ–΄μ‘Œμ„ λ•Œ, ν•„μš”ν•œ μ„ΈνŠΈμ˜ 개수의 μ΅œμ†Ÿκ°’μ„ 좜λ ₯ν•˜μ‹œμ˜€. (6은 9λ₯Ό λ’€μ§‘μ–΄μ„œ μ΄μš©ν•  수 있고, 9λŠ” 6을 λ’€μ§‘μ–΄μ„œ μ΄μš©ν•  수 μžˆλ‹€.) μž…μΆœλ ₯ μ˜ˆμ‹œ 풀이 μ²˜μŒμ— λ¬Έμ œλž‘ μž…μΆœλ ₯ μ˜ˆμ‹œ 보자마자 금방 ν’€ 쀄 μ•Œμ•˜λŠ”λ° 또 슀슀둜λ₯Ό κ³ΌλŒ€ν‰κ°€ν•΄λ²„λ¦° κ²ƒμ΄μ—ˆμŒ. 질문 κ²Œμ‹œνŒκ³Ό κ΅¬κΈ€λ§μœΌλ‘œ 힌트 얻은 후에야 μ œμΆœν•  수 μžˆμ—ˆλ‹€. 힌트 보면 μ•„~ ν•˜λŠ”λ° κ·Έ 과정을 λ‚΄ 힘으둜 λ– μ˜¬λ¦¬λŠ” 게 μ™œμ΄λ ‡κ²Œ μ–΄λ €μšΈκΉŒ πŸ₯² 일단 λ‚΄κ°€ 생각해본 풀이 방식듀은 μ•„λž˜μ™€ κ°™λ‹€. 아이디어 1) λ¬Έμžμ—΄ λ‹¨μˆœ 확인.. 2023. 12. 3.