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

Algorithm

(81)
[Algorithm] μˆœμœ„ πŸ“‹ 문제 nλͺ…μ˜ κΆŒνˆ¬μ„ μˆ˜κ°€ ꢌ투 λŒ€νšŒμ— μ°Έμ—¬ν–ˆκ³  각각 1λ²ˆλΆ€ν„° nλ²ˆκΉŒμ§€ 번호λ₯Ό λ°›μ•˜μŠ΅λ‹ˆλ‹€. ꢌ투 κ²½κΈ°λŠ” 1λŒ€1 λ°©μ‹μœΌλ‘œ 진행이 되고, λ§Œμ•½ A μ„ μˆ˜κ°€ B μ„ μˆ˜λ³΄λ‹€ μ‹€λ ₯이 μ’‹λ‹€λ©΄ A μ„ μˆ˜λŠ” B μ„ μˆ˜λ₯Ό 항상 μ΄κΉλ‹ˆλ‹€. μ‹¬νŒμ€ μ£Όμ–΄μ§„ κ²½κΈ° κ²°κ³Όλ₯Ό κ°€μ§€κ³  μ„ μˆ˜λ“€μ˜ μˆœμœ„λ₯Ό λ§€κΈ°λ € ν•©λ‹ˆλ‹€. ν•˜μ§€λ§Œ λͺ‡λͺ‡ κ²½κΈ° κ²°κ³Όλ₯Ό λΆ„μ‹€ν•˜μ—¬ μ •ν™•ν•˜κ²Œ μˆœμœ„λ₯Ό λ§€κΈΈ 수 μ—†μŠ΅λ‹ˆλ‹€. μ„ μˆ˜μ˜ 수 n, κ²½κΈ° κ²°κ³Όλ₯Ό 담은 2차원 λ°°μ—΄ resultsκ°€ λ§€κ°œλ³€μˆ˜λ‘œ μ£Όμ–΄μ§ˆ λ•Œ μ •ν™•ν•˜κ²Œ μˆœμœ„λ₯Ό λ§€κΈΈ 수 μžˆλŠ” μ„ μˆ˜μ˜ 수λ₯Ό return ν•˜λ„λ‘ solution ν•¨μˆ˜λ₯Ό μž‘μ„±ν•΄μ£Όμ„Έμš”. μ œν•œ 사항 μ„ μˆ˜μ˜ μˆ˜λŠ” 1λͺ… 이상 100λͺ… μ΄ν•˜μž…λ‹ˆλ‹€. κ²½κΈ° κ²°κ³ΌλŠ” 1개 이상 4,500개 μ΄ν•˜μž…λ‹ˆλ‹€. results λ°°μ—΄ 각 ν–‰ [A, B]λŠ” A μ„ μˆ˜κ°€ B μ„ μˆ˜λ₯Ό μ΄κ²Όλ‹€λŠ” 의..
[Algorithm] 닀단계 μΉ«μ†”νŒλ§€ πŸ“‹ 문제 λ―Όν˜ΈλŠ” 닀단계 쑰직을 μ΄μš©ν•˜μ—¬ 칫솔을 νŒλ§€ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. νŒλ§€μ›μ΄ 칫솔을 νŒλ§€ν•˜λ©΄ κ·Έ 이읡이 ν”ΌλΌλ―Έλ“œ 쑰직을 타고 μ‘°κΈˆμ”© λΆ„λ°°λ˜λŠ” ν˜•νƒœμ˜ νŒλ§€λ§μž…λ‹ˆλ‹€. μ–΄λŠμ •λ„ νŒλ§€κ°€ 이루어진 ν›„, 쑰직을 μš΄μ˜ν•˜λ˜ λ―Όν˜ΈλŠ” 쑰직 λ‚΄ λˆ„κ°€ μ–Όλ§ˆλ§ŒνΌμ˜ 이득을 κ°€μ Έκ°”λŠ”μ§€κ°€ κΆκΈˆν•΄μ‘ŒμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, λ―Όν˜Έκ°€ μš΄μ˜ν•˜κ³  μžˆλŠ” 닀단계 칫솔 판맀 쑰직이 μ•„λž˜ κ·Έλ¦Όκ³Ό κ°™λ‹€κ³  ν•©μ‹œλ‹€. λ―Όν˜ΈλŠ” center이며, νŒŒλž€μƒ‰ λ„€λͺ¨λŠ” μ—¬λŸ λͺ…μ˜ νŒλ§€μ›μ„ ν‘œμ‹œν•œ κ²ƒμž…λ‹ˆλ‹€. 각각은 μžμ‹ μ„ 쑰직에 μ°Έμ—¬μ‹œν‚¨ μΆ”μ²œμΈμ— μ—°κ²°λ˜μ–΄ ν”ΌλΌλ―Έλ“œ μ‹μ˜ ꡬ쑰λ₯Ό 이루고 μžˆμŠ΅λ‹ˆλ‹€. 쑰직의 이읡 λΆ„λ°° κ·œμΉ™μ€ κ°„λ‹¨ν•©λ‹ˆλ‹€. λͺ¨λ“  νŒλ§€μ›μ€ μΉ«μ†”μ˜ νŒλ§€μ— μ˜ν•˜μ—¬ λ°œμƒν•˜λŠ” μ΄μ΅μ—μ„œ 10% λ₯Ό κ³„μ‚°ν•˜μ—¬ μžμ‹ μ„ 쑰직에 μ°Έμ—¬μ‹œν‚¨ μΆ”μ²œμΈμ—κ²Œ λ°°λΆ„ν•˜κ³  λ‚˜λ¨Έμ§€λŠ” μžμ‹ μ΄ κ°€μ§‘λ‹ˆλ‹€. λͺ¨λ“ ..
[Algorithm] λ””μŠ€ν¬ 컨트둀러 πŸ“‹ 문제 ν•˜λ“œλ””μŠ€ν¬λŠ” ν•œ λ²ˆμ— ν•˜λ‚˜μ˜ μž‘μ—…λ§Œ μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ””μŠ€ν¬ 컨트둀러λ₯Ό κ΅¬ν˜„ν•˜λŠ” 방법은 μ—¬λŸ¬ κ°€μ§€κ°€ μžˆμŠ΅λ‹ˆλ‹€. κ°€μž₯ 일반적인 방법은 μš”μ²­μ΄ λ“€μ–΄μ˜¨ μˆœμ„œλŒ€λ‘œ μ²˜λ¦¬ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€. 예λ₯Όλ“€μ–΄ - 0ms μ‹œμ μ— 3msκ°€ μ†Œμš”λ˜λŠ” Aμž‘μ—… μš”μ²­ - 1ms μ‹œμ μ— 9msκ°€ μ†Œμš”λ˜λŠ” Bμž‘μ—… μš”μ²­ - 2ms μ‹œμ μ— 6msκ°€ μ†Œμš”λ˜λŠ” Cμž‘μ—… μš”μ²­ 와 같은 μš”μ²­μ΄ λ“€μ–΄μ™”μŠ΅λ‹ˆλ‹€. 이λ₯Ό 그림으둜 ν‘œν˜„ν•˜λ©΄ μ•„λž˜μ™€ κ°™μŠ΅λ‹ˆλ‹€. ν•œ λ²ˆμ— ν•˜λ‚˜μ˜ μš”μ²­λ§Œμ„ μˆ˜ν–‰ν•  수 있기 λ•Œλ¬Έμ— 각각의 μž‘μ—…μ„ μš”μ²­λ°›μ€ μˆœμ„œλŒ€λ‘œ μ²˜λ¦¬ν•˜λ©΄ λ‹€μŒκ³Ό 같이 처리 λ©λ‹ˆλ‹€. - A: 3ms μ‹œμ μ— μž‘μ—… μ™„λ£Œ (μš”μ²­μ—μ„œ μ’…λ£ŒκΉŒμ§€ : 3ms) - B: 1msλΆ€ν„° λŒ€κΈ°ν•˜λ‹€κ°€, 3ms μ‹œμ μ— μž‘μ—…μ„ μ‹œμž‘ν•΄μ„œ 12ms μ‹œμ μ— μž‘μ—… μ™„λ£Œ(μš”μ²­μ—μ„œ μ’…λ£ŒκΉŒμ§€ : 11m..
[Algorithm] 섬 μ—°κ²°ν•˜κΈ° πŸ“‹ 문제 n개의 섬 사이에 닀리λ₯Ό κ±΄μ„€ν•˜λŠ” λΉ„μš©(costs)이 μ£Όμ–΄μ§ˆ λ•Œ, μ΅œμ†Œμ˜ λΉ„μš©μœΌλ‘œ λͺ¨λ“  섬이 μ„œλ‘œ 톡행 κ°€λŠ₯ν•˜λ„λ‘ λ§Œλ“€ λ•Œ ν•„μš”ν•œ μ΅œμ†Œ λΉ„μš©μ„ return ν•˜λ„λ‘ solution을 μ™„μ„±ν•˜μ„Έμš”. 닀리λ₯Ό μ—¬λŸ¬ 번 κ±΄λ„ˆλ”λΌλ„, 도달할 수만 있으면 톡행 κ°€λŠ₯ν•˜λ‹€κ³  λ΄…λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄ A 섬과 B 섬 사이에 닀리가 있고, B 섬과 C 섬 사이에 닀리가 있으면 A 섬과 C 섬은 μ„œλ‘œ 톡행 κ°€λŠ₯ν•©λ‹ˆλ‹€. μ œν•œ 사항 μ„¬μ˜ 개수 n은 1 이상 100 μ΄ν•˜μž…λ‹ˆλ‹€. costs의 κΈΈμ΄λŠ” ((n-1) * n) / 2μ΄ν•˜μž…λ‹ˆλ‹€. μž„μ˜μ˜ i에 λŒ€ν•΄, costs[i][0] 와 costs[i] [1]μ—λŠ” 닀리가 μ—°κ²°λ˜λŠ” 두 μ„¬μ˜ λ²ˆν˜Έκ°€ λ“€μ–΄μžˆκ³ , costs[i] [2]μ—λŠ” 이 두 섬을 μ—°κ²°ν•˜λŠ” 닀리λ₯Ό 건섀할 λ•Œ λ“œλŠ” λΉ„μš©μž…λ‹ˆλ‹€..
[Algorithm] κ°€μž₯ λ¨Ό λ…Έλ“œ πŸ“‹ 문제 n개의 λ…Έλ“œκ°€ μžˆλŠ” κ·Έλž˜ν”„κ°€ μžˆμŠ΅λ‹ˆλ‹€. 각 λ…Έλ“œλŠ” 1λΆ€ν„° nκΉŒμ§€ λ²ˆν˜Έκ°€ μ ν˜€μžˆμŠ΅λ‹ˆλ‹€. 1번 λ…Έλ“œμ—μ„œ κ°€μž₯ 멀리 λ–¨μ–΄μ§„ λ…Έλ“œμ˜ 갯수λ₯Ό κ΅¬ν•˜λ €κ³  ν•©λ‹ˆλ‹€. κ°€μž₯ 멀리 λ–¨μ–΄μ§„ λ…Έλ“œλž€ μ΅œλ‹¨κ²½λ‘œλ‘œ μ΄λ™ν–ˆμ„ λ•Œ κ°„μ„ μ˜ κ°œμˆ˜κ°€ κ°€μž₯ λ§Žμ€ λ…Έλ“œλ“€μ„ μ˜λ―Έν•©λ‹ˆλ‹€. λ…Έλ“œμ˜ 개수 n, 간선에 λŒ€ν•œ 정보가 λ‹΄κΈ΄ 2차원 λ°°μ—΄ vertexκ°€ λ§€κ°œλ³€μˆ˜λ‘œ μ£Όμ–΄μ§ˆ λ•Œ, 1번 λ…Έλ“œλ‘œλΆ€ν„° κ°€μž₯ 멀리 λ–¨μ–΄μ§„ λ…Έλ“œκ°€ λͺ‡ κ°œμΈμ§€λ₯Ό return ν•˜λ„λ‘ solution ν•¨μˆ˜λ₯Ό μž‘μ„±ν•΄μ£Όμ„Έμš”. μ œν•œ 사항 λ…Έλ“œμ˜ 개수 n은 2 이상 20,000 μ΄ν•˜μž…λ‹ˆλ‹€. 간선은 μ–‘λ°©ν–₯이며 총 1개 이상 50,000개 μ΄ν•˜μ˜ 간선이 μžˆμŠ΅λ‹ˆλ‹€. vertex λ°°μ—΄ 각 ν–‰ [a, b]λŠ” a번 λ…Έλ“œμ™€ b번 λ…Έλ“œ 사이에 간선이 μžˆλ‹€λŠ” μ˜λ―Έμž…λ‹ˆλ‹€. μž…μΆœλ ₯ 예 6 [[3, ..
[Algorithm] μŠ€ν‹°μ»€ λͺ¨μœΌκΈ°2 πŸ“‹ 문제 N개의 μŠ€ν‹°μ»€κ°€ μ›ν˜•μœΌλ‘œ μ—°κ²°λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€. λ‹€μŒ 그림은 N = 8인 경우의 μ˜ˆμ‹œμž…λ‹ˆλ‹€. μ›ν˜•μœΌλ‘œ μ—°κ²°λœ μŠ€ν‹°μ»€μ—μ„œ λͺ‡ μž₯의 μŠ€ν‹°μ»€λ₯Ό λœ―μ–΄λ‚΄μ–΄ λœ―μ–΄λ‚Έ μŠ€ν‹°μ»€μ— 적힌 숫자의 합이 μ΅œλŒ€κ°€ λ˜λ„λ‘ ν•˜κ³  μ‹ΆμŠ΅λ‹ˆλ‹€. 단 μŠ€ν‹°μ»€ ν•œ μž₯을 λœ―μ–΄λ‚΄λ©΄ μ–‘μͺ½μœΌλ‘œ μΈμ ‘ν•΄μžˆλŠ” μŠ€ν‹°μ»€λŠ” μ°’μ–΄μ Έμ„œ μ‚¬μš©ν•  수 μ—†κ²Œ λ©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄ μœ„ κ·Έλ¦Όμ—μ„œ 14κ°€ 적힌 μŠ€ν‹°μ»€λ₯Ό 뜯으면 μΈμ ‘ν•΄μžˆλŠ” 10, 6이 적힌 μŠ€ν‹°μ»€λŠ” μ‚¬μš©ν•  수 μ—†μŠ΅λ‹ˆλ‹€. μŠ€ν‹°μ»€μ— 적힌 μˆ«μžκ°€ λ°°μ—΄ ν˜•νƒœλ‘œ μ£Όμ–΄μ§ˆ λ•Œ, μŠ€ν‹°μ»€λ₯Ό λœ―μ–΄λ‚΄μ–΄ 얻을 수 μžˆλŠ” 숫자의 ν•©μ˜ μ΅œλŒ“κ°’μ„ return ν•˜λŠ” solution ν•¨μˆ˜λ₯Ό μ™„μ„±ν•΄ μ£Όμ„Έμš”. μ›ν˜•μ˜ μŠ€ν‹°μ»€ λͺ¨μ–‘을 μœ„ν•΄ λ°°μ—΄μ˜ 첫 번째 μ›μ†Œμ™€ λ§ˆμ§€λ§‰ μ›μ†Œκ°€ μ„œλ‘œ μ—°κ²°λ˜μ–΄ μžˆλ‹€κ³  κ°„μ£Όν•©λ‹ˆλ‹€. μ œν•œ 사항 stickerλŠ” μ›ν˜•μœΌλ‘œ μ—°..
[Algorithm] λΆ€λŒ€λ³΅κ·€ πŸ“‹ 문제 κ°•μ² λΆ€λŒ€μ˜ 각 λΆ€λŒ€μ›μ΄ μ—¬λŸ¬ 지역에 뿔뿔이 흩어져 특수 μž„λ¬΄λ₯Ό μˆ˜ν–‰ μ€‘μž…λ‹ˆλ‹€. μ§€λ„μ—μ„œ κ°•μ² λΆ€λŒ€κ°€ μœ„μΉ˜ν•œ 지역을 ν¬ν•¨ν•œ 각 지역은 μœ μΌν•œ 번호둜 κ΅¬λΆ„λ˜λ©°, 두 μ§€μ—­ κ°„μ˜ 길을 ν†΅κ³Όν•˜λŠ” 데 κ±Έλ¦¬λŠ” μ‹œκ°„μ€ λͺ¨λ‘ 1둜 λ™μΌν•©λ‹ˆλ‹€. μž„λ¬΄λ₯Ό μˆ˜ν–‰ν•œ 각 λΆ€λŒ€μ›μ€ 지도 정보λ₯Ό μ΄μš©ν•˜μ—¬ μ΅œλ‹¨μ‹œκ°„μ— λΆ€λŒ€λ‘œ λ³΅κ·€ν•˜κ³ μž ν•©λ‹ˆλ‹€. λ‹€λ§Œ 적ꡰ의 λ°©ν•΄λ‘œ 인해, μž„λ¬΄μ˜ μ‹œμž‘ λ•Œμ™€ λ‹€λ₯΄κ²Œ λ˜λŒμ•„μ˜€λŠ” κ²½λ‘œκ°€ μ—†μ–΄μ Έ 볡귀가 λΆˆκ°€λŠ₯ν•œ λΆ€λŒ€μ›λ„ μžˆμ„ 수 μžˆμŠ΅λ‹ˆλ‹€. κ°•μ² λΆ€λŒ€κ°€ μœ„μΉ˜ν•œ 지역을 ν¬ν•¨ν•œ μ΄μ§€μ—­μ˜ 수 n, 두 지역을 왕볡할 수 μžˆλŠ” κΈΈ 정보λ₯Ό 담은 2차원 μ •μˆ˜ λ°°μ—΄ roads, 각 λΆ€λŒ€μ›μ΄ μœ„μΉ˜ν•œ μ„œλ‘œ λ‹€λ₯Έ 지역듀을 λ‚˜νƒ€λ‚΄λŠ” μ •μˆ˜ λ°°μ—΄ sources, κ°•μ² λΆ€λŒ€μ˜ μ§€μ—­ destination이 μ£Όμ–΄μ‘Œμ„ λ•Œ, μ£Όμ–΄μ§„ source..
[Algorithm] 졜고의 μ§‘ν•© πŸ“‹ 문제 μžμ—°μˆ˜ n 개둜 이루어진 쀑볡 μ§‘ν•©(multi set, νŽΈμ˜μƒ μ΄ν›„μ—λŠ” "μ§‘ν•©"으둜 톡칭) 쀑에 λ‹€μŒ 두 쑰건을 λ§Œμ‘±ν•˜λŠ” 집합을 졜고의 집합이라고 ν•©λ‹ˆλ‹€. 각 μ›μ†Œμ˜ 합이 Sκ°€ λ˜λŠ” 수의 μ§‘ν•© μœ„ 쑰건을 λ§Œμ‘±ν•˜λ©΄μ„œ 각 μ›μ†Œμ˜ κ³± 이 μ΅œλŒ€κ°€ λ˜λŠ” μ§‘ν•© 예λ₯Ό λ“€μ–΄μ„œ μžμ—°μˆ˜ 2개둜 이루어진 μ§‘ν•© 쀑 합이 9κ°€ λ˜λŠ” 집합은 λ‹€μŒκ³Ό 같이 4κ°œκ°€ μžˆμŠ΅λ‹ˆλ‹€. { 1, 8 }, { 2, 7 }, { 3, 6 }, { 4, 5 } 그쀑 각 μ›μ†Œμ˜ 곱이 μ΅œλŒ€μΈ { 4, 5 }κ°€ 졜고의 μ§‘ν•©μž…λ‹ˆλ‹€. μ§‘ν•©μ˜ μ›μ†Œμ˜ 개수 nκ³Ό λͺ¨λ“  μ›μ†Œλ“€μ˜ ν•© sκ°€ λ§€κ°œλ³€μˆ˜λ‘œ μ£Όμ–΄μ§ˆ λ•Œ, 졜고의 집합을 return ν•˜λŠ” solution ν•¨μˆ˜λ₯Ό μ™„μ„±ν•΄μ£Όμ„Έμš”. μ œν•œ 사항 졜고의 집합은 μ˜€λ¦„μ°¨μˆœμœΌλ‘œ μ •λ ¬λœ 1차원 λ°°μ—΄(list, vecto..