🐍 μ½”λ”©ν…ŒμŠ€νŠΈ λŒ€λΉ„ : PS

    [ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] λ„λ‘‘μ§ˆ (level4, python)

    [ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] λ„λ‘‘μ§ˆ (level4, python)

    🏝 문제 μ„€λͺ… 도둑이 μ–΄λŠ λ§ˆμ„μ„ ν„Έ κ³„νšμ„ ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. 이 λ§ˆμ„μ˜ λͺ¨λ“  집듀은 μ•„λž˜ κ·Έλ¦Όκ³Ό 같이 λ™κ·Έλž—κ²Œ λ°°μΉ˜λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€. 각 집듀은 μ„œλ‘œ μΈμ ‘ν•œ 집듀과 λ°©λ²”μž₯μΉ˜κ°€ μ—°κ²°λ˜μ–΄ 있기 λ•Œλ¬Έμ— μΈμ ‘ν•œ 두 집을 ν„Έλ©΄ 경보가 μšΈλ¦½λ‹ˆλ‹€. 각 집에 μžˆλŠ” 돈이 λ‹΄κΈ΄ λ°°μ—΄ moneyκ°€ μ£Όμ–΄μ§ˆ λ•Œ, 도둑이 ν›”μΉ  수 μžˆλŠ” 돈의 μ΅œλŒ“κ°’μ„ return ν•˜λ„λ‘ solution ν•¨μˆ˜λ₯Ό μž‘μ„±ν•˜μ„Έμš”. μ œν•œμ‚¬ν•­ 이 λ§ˆμ„μ— μžˆλŠ” 집은 3개 이상 1,000,000개 μ΄ν•˜μž…λ‹ˆλ‹€. money λ°°μ—΄μ˜ 각 μ›μ†ŒλŠ” 0 이상 1,000 μ΄ν•˜μΈ μ •μˆ˜μž…λ‹ˆλ‹€. μž…μΆœλ ₯ 예 [1, 2, 3, 1] 4 🏝 풀이 μ½”λ“œ def solution(money): answer = 0 if len(money) == 1: return money.pop() size = ..

    [ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] μŠ€ν‹°μ»€ λͺ¨μœΌκΈ°(2) (level3, python)

    [ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] μŠ€ν‹°μ»€ λͺ¨μœΌκΈ°(2) (level3, python)

    🏝 문제 μ„€λͺ… N개의 μŠ€ν‹°μ»€κ°€ μ›ν˜•μœΌλ‘œ μ—°κ²°λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€. λ‹€μŒ 그림은 N = 8인 경우의 μ˜ˆμ‹œμž…λ‹ˆλ‹€. μ›ν˜•μœΌλ‘œ μ—°κ²°λœ μŠ€ν‹°μ»€μ—μ„œ λͺ‡ μž₯의 μŠ€ν‹°μ»€λ₯Ό λœ―μ–΄λ‚΄μ–΄ λœ―μ–΄λ‚Έ μŠ€ν‹°μ»€μ— 적힌 숫자의 합이 μ΅œλŒ€κ°€ λ˜λ„λ‘ ν•˜κ³  μ‹ΆμŠ΅λ‹ˆλ‹€. 단 μŠ€ν‹°μ»€ ν•œ μž₯을 λœ―μ–΄λ‚΄λ©΄ μ–‘μͺ½μœΌλ‘œ μΈμ ‘ν•΄μžˆλŠ” μŠ€ν‹°μ»€λŠ” μ°’μ–΄μ Έμ„œ μ‚¬μš©ν•  수 μ—†κ²Œ λ©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄ μœ„ κ·Έλ¦Όμ—μ„œ 14κ°€ 적힌 μŠ€ν‹°μ»€λ₯Ό 뜯으면 μΈμ ‘ν•΄μžˆλŠ” 10, 6이 적힌 μŠ€ν‹°μ»€λŠ” μ‚¬μš©ν•  수 μ—†μŠ΅λ‹ˆλ‹€. μŠ€ν‹°μ»€μ— 적힌 μˆ«μžκ°€ λ°°μ—΄ ν˜•νƒœλ‘œ μ£Όμ–΄μ§ˆ λ•Œ, μŠ€ν‹°μ»€λ₯Ό λœ―μ–΄λ‚΄μ–΄ 얻을 수 μžˆλŠ” 숫자의 ν•©μ˜ μ΅œλŒ“κ°’μ„ return ν•˜λŠ” solution ν•¨μˆ˜λ₯Ό μ™„μ„±ν•΄ μ£Όμ„Έμš”. μ›ν˜•μ˜ μŠ€ν‹°μ»€ λͺ¨μ–‘을 μœ„ν•΄ λ°°μ—΄μ˜ 첫 번째 μ›μ†Œμ™€ λ§ˆμ§€λ§‰ μ›μ†Œκ°€ μ„œλ‘œ μ—°κ²°λ˜μ–΄ μžˆλ‹€κ³  κ°„μ£Όν•©λ‹ˆλ‹€. μ œν•œ 사항 stickerλŠ” μ›ν˜•μœΌ..

    [ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] 배달 (level2, python)

    [ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] 배달 (level2, python)

    πŸ› 문제 μ„€λͺ… N개의 λ§ˆμ„λ‘œ 이루어진 λ‚˜λΌκ°€ μžˆμŠ΅λ‹ˆλ‹€. 이 λ‚˜λΌμ˜ 각 λ§ˆμ„μ—λŠ” 1λΆ€ν„° NκΉŒμ§€μ˜ λ²ˆν˜Έκ°€ 각각 ν•˜λ‚˜μ”© λΆ€μ—¬λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€. 각 λ§ˆμ„μ€ μ–‘λ°©ν–₯으둜 톡행할 수 μžˆλŠ” λ„λ‘œλ‘œ μ—°κ²°λ˜μ–΄ μžˆλŠ”λ°, μ„œλ‘œ λ‹€λ₯Έ λ§ˆμ„ 간에 이동할 λ•ŒλŠ” 이 λ„λ‘œλ₯Ό μ§€λ‚˜μ•Ό ν•©λ‹ˆλ‹€. λ„λ‘œλ₯Ό 지날 λ•Œ κ±Έλ¦¬λŠ” μ‹œκ°„μ€ λ„λ‘œλ³„λ‘œ λ‹€λ¦…λ‹ˆλ‹€. ν˜„μž¬ 1번 λ§ˆμ„μ— μžˆλŠ” μŒμ‹μ μ—μ„œ 각 λ§ˆμ„λ‘œ μŒμ‹ 배달을 ν•˜λ €κ³  ν•©λ‹ˆλ‹€. 각 λ§ˆμ„λ‘œλΆ€ν„° μŒμ‹ 주문을 λ°›μœΌλ €κ³  ν•˜λŠ”λ°, N개의 λ§ˆμ„ μ€‘μ—μ„œ K μ‹œκ°„ μ΄ν•˜λ‘œ 배달이 κ°€λŠ₯ν•œ λ§ˆμ„μ—μ„œλ§Œ 주문을 λ°›μœΌλ €κ³  ν•©λ‹ˆλ‹€. λ‹€μŒμ€ N = 5, K = 3인 경우의 μ˜ˆμ‹œμž…λ‹ˆλ‹€. μœ„ κ·Έλ¦Όμ—μ„œ 1번 λ§ˆμ„μ— μžˆλŠ” μŒμ‹μ μ€ [1, 2, 4, 5] 번 λ§ˆμ„κΉŒμ§€λŠ” 3 μ΄ν•˜μ˜ μ‹œκ°„μ— 배달할 수 μžˆμŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ 3번 λ§ˆμ„κΉŒμ§€λŠ” 3μ‹œκ°„ 이..

    [ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] 섬 μ—°κ²°ν•˜κΈ° (level3, python)

    [ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] 섬 μ—°κ²°ν•˜κΈ° (level3, python)

    🏝 문제 μ„€λͺ… 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]μ—λŠ” 이 두 섬을 μ—°κ²°ν•˜λŠ” 닀리λ₯Ό 건섀할 λ•Œ λ“œλŠ” λΉ„μš©μž…..

    [ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] 쀄 μ„œλŠ” 방법 (level2, python)

    🏝 문제 μ„€λͺ… nλͺ…μ˜ μ‚¬λžŒμ΄ 일렬둜 쀄을 μ„œκ³  μžˆμŠ΅λ‹ˆλ‹€. nλͺ…μ˜ μ‚¬λžŒλ“€μ—κ²ŒλŠ” 각각 1λ²ˆλΆ€ν„° nλ²ˆκΉŒμ§€ λ²ˆν˜Έκ°€ 맀겨져 μžˆμŠ΅λ‹ˆλ‹€. nλͺ…이 μ‚¬λžŒμ„ 쀄을 μ„œλŠ” 방법은 μ—¬λŸ¬κ°€μ§€ 방법이 μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄μ„œ 3λͺ…μ˜ μ‚¬λžŒμ΄ μžˆλ‹€λ©΄ λ‹€μŒκ³Ό 같이 6개의 방법이 μžˆμŠ΅λ‹ˆλ‹€. [1, 2, 3] [1, 3, 2] [2, 1, 3] [2, 3, 1] [3, 1, 2] [3, 2, 1] μ‚¬λžŒμ˜ 수 nκ³Ό, μžμ—°μˆ˜ kκ°€ μ£Όμ–΄μ§ˆ λ•Œ, μ‚¬λžŒμ„ λ‚˜μ—΄ ν•˜λŠ” 방법을 사전 순으둜 λ‚˜μ—΄ ν–ˆμ„ λ•Œ, k번째 방법을 returnν•˜λŠ” solution ν•¨μˆ˜λ₯Ό μ™„μ„±ν•΄μ£Όμ„Έμš”. μ œν•œμ‚¬ν•­ n은 20μ΄ν•˜μ˜ μžμ—°μˆ˜ μž…λ‹ˆλ‹€. kλŠ” n! μ΄ν•˜μ˜ μžμ—°μˆ˜ μž…λ‹ˆλ‹€. μž…μΆœλ ₯ 예 3 5 [3,1,2] μž…μΆœλ ₯ μ˜ˆμ‹œ μ„€λͺ… μž…μΆœλ ₯ 예 #1 문제의 μ˜ˆμ‹œμ™€ κ°™μŠ΅λ‹ˆλ‹€. 🏝 풀이 μ½”λ“œ im..

    [ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] κ°€μž₯ λ¨Ό λ…Έλ“œ (level3, python)

    [ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] κ°€μž₯ λ¨Ό λ…Έλ“œ (level3, python)

    🏝 문제 μ„€λͺ… n개의 λ…Έλ“œκ°€ μžˆλŠ” κ·Έλž˜ν”„κ°€ μžˆμŠ΅λ‹ˆλ‹€. 각 λ…Έλ“œλŠ” 1λΆ€ν„° nκΉŒμ§€ λ²ˆν˜Έκ°€ μ ν˜€μžˆμŠ΅λ‹ˆλ‹€. 1번 λ…Έλ“œμ—μ„œ κ°€μž₯ 멀리 떨어진 λ…Έλ“œμ˜ 갯수λ₯Ό κ΅¬ν•˜λ €κ³  ν•©λ‹ˆλ‹€. κ°€μž₯ 멀리 떨어진 λ…Έλ“œλž€ μ΅œλ‹¨κ²½λ‘œλ‘œ μ΄λ™ν–ˆμ„ λ•Œ κ°„μ„ μ˜ κ°œμˆ˜κ°€ κ°€μž₯ λ§Žμ€ λ…Έλ“œλ“€μ„ μ˜λ―Έν•©λ‹ˆλ‹€. λ…Έλ“œμ˜ 개수 n, 간선에 λŒ€ν•œ 정보가 λ‹΄κΈ΄ 2차원 λ°°μ—΄ vertexκ°€ λ§€κ°œλ³€μˆ˜λ‘œ μ£Όμ–΄μ§ˆ λ•Œ, 1번 λ…Έλ“œλ‘œλΆ€ν„° κ°€μž₯ 멀리 떨어진 λ…Έλ“œκ°€ λͺ‡ κ°œμΈμ§€λ₯Ό return ν•˜λ„λ‘ solution ν•¨μˆ˜λ₯Ό μž‘μ„±ν•΄μ£Όμ„Έμš”. μ œν•œμ‚¬ν•­ λ…Έλ“œμ˜ 개수 n은 2 이상 20,000 μ΄ν•˜μž…λ‹ˆλ‹€. 간선은 μ–‘λ°©ν–₯이며 총 1개 이상 50,000개 μ΄ν•˜μ˜ 간선이 μžˆμŠ΅λ‹ˆλ‹€. vertex λ°°μ—΄ 각 ν–‰ [a, b]λŠ” a번 λ…Έλ“œμ™€ b번 λ…Έλ“œ 사이에 간선이 μžˆλ‹€λŠ” μ˜λ―Έμž…λ‹ˆλ‹€. μž…μΆœλ ₯ 예 6 [[3..

    [ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] 방금그곑 (level2, python)

    🏝 문제 μ„€λͺ… λΌλ””μ˜€λ₯Ό 자주 λ“£λŠ” λ„€μ˜€λŠ” λΌλ””μ˜€μ—μ„œ 방금 λ‚˜μ™”λ˜ μŒμ•…μ΄ 무슨 μŒμ•…μΈμ§€ κΆκΈˆν•΄μ§ˆ λ•Œκ°€ λ§Žλ‹€. 그럴 λ•Œ λ„€μ˜€λŠ” λ‹€μŒ ν¬ν„Έμ˜ '방금그곑' μ„œλΉ„μŠ€λ₯Ό μ΄μš©ν•˜κ³€ ν•œλ‹€. λ°©κΈˆκ·Έκ³‘μ—μ„œλŠ” TV, λΌλ””μ˜€ λ“±μ—μ„œ λ‚˜μ˜¨ μŒμ•…μ— κ΄€ν•΄ 제λͺ© λ“±μ˜ 정보λ₯Ό μ œκ³΅ν•˜λŠ” μ„œλΉ„μŠ€μ΄λ‹€. λ„€μ˜€λŠ” μžμ‹ μ΄ κΈ°μ–΅ν•œ λ©œλ‘œλ””λ₯Ό 가지고 λ°©κΈˆκ·Έκ³‘μ„ μ΄μš©ν•΄ μŒμ•…μ„ μ°ΎλŠ”λ‹€. 그런데 λΌλ””μ˜€ λ°©μ†‘μ—μ„œλŠ” ν•œ μŒμ•…μ„ λ°˜λ³΅ν•΄μ„œ μž¬μƒν•  λ•Œλ„ μžˆμ–΄μ„œ λ„€μ˜€κ°€ κΈ°μ–΅ν•˜κ³  μžˆλŠ” λ©œλ‘œλ””λŠ” μŒμ•… 끝뢀뢄과 처음 뢀뢄이 μ΄μ–΄μ„œ μž¬μƒλœ λ©œλ‘œλ””μΌ μˆ˜λ„ μžˆλ‹€. λ°˜λŒ€λ‘œ, ν•œ μŒμ•…μ„ 쀑간에 λŠμ„ 경우 원본 μŒμ•…μ—λŠ” λ„€μ˜€κ°€ κΈ°μ–΅ν•œ λ©œλ‘œλ””κ°€ λ“€μ–΄μžˆλ‹€ 해도 κ·Έ 곑이 λ„€μ˜€κ°€ 듀은 곑이 아닐 μˆ˜λ„ μžˆλ‹€. κ·Έλ ‡κΈ° λ•Œλ¬Έμ— λ„€μ˜€λŠ” κΈ°μ–΅ν•œ λ©œλ‘œλ””λ₯Ό μž¬μƒ μ‹œκ°„κ³Ό 제곡된 악보λ₯Ό 직접 λ³΄λ©΄μ„œ λΉ„κ΅ν•˜..

    [ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] ν–‰λ ¬ ν…Œλ‘λ¦¬ νšŒμ „ (level2, python)

    [ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] ν–‰λ ¬ ν…Œλ‘λ¦¬ νšŒμ „ (level2, python)

    🏝 문제 μ„€λͺ… rows x columns 크기인 행렬이 μžˆμŠ΅λ‹ˆλ‹€. ν–‰λ ¬μ—λŠ” 1λΆ€ν„° rows x columnsκΉŒμ§€μ˜ μˆ«μžκ°€ ν•œ 쀄씩 μˆœμ„œλŒ€λ‘œ μ ν˜€μžˆμŠ΅λ‹ˆλ‹€. 이 ν–‰λ ¬μ—μ„œ μ§μ‚¬κ°ν˜• λͺ¨μ–‘μ˜ λ²”μœ„λ₯Ό μ—¬λŸ¬ 번 선택해, ν…Œλ‘λ¦¬ 뢀뢄에 μžˆλŠ” μˆ«μžλ“€μ„ μ‹œκ³„λ°©ν–₯으둜 νšŒμ „μ‹œν‚€λ € ν•©λ‹ˆλ‹€. 각 νšŒμ „μ€ (x1, y1, x2, y2)인 μ •μˆ˜ 4개둜 ν‘œν˜„ν•˜λ©°, κ·Έ μ˜λ―ΈλŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€. x1 ν–‰ y1 μ—΄λΆ€ν„° x2 ν–‰ y2 μ—΄κΉŒμ§€μ˜ μ˜μ—­μ— ν•΄λ‹Ήν•˜λŠ” μ§μ‚¬κ°ν˜•μ—μ„œ ν…Œλ‘λ¦¬μ— μžˆλŠ” μˆ«μžλ“€μ„ ν•œ μΉΈμ”© μ‹œκ³„λ°©ν–₯으둜 νšŒμ „ν•©λ‹ˆλ‹€. λ‹€μŒμ€ 6 x 6 크기 ν–‰λ ¬μ˜ μ˜ˆμ‹œμž…λ‹ˆλ‹€. 이 행렬에 (2, 2, 5, 4) νšŒμ „μ„ μ μš©ν•˜λ©΄, μ•„λž˜ κ·Έλ¦Όκ³Ό 같이 2ν–‰ 2μ—΄λΆ€ν„° 5ν–‰ 4μ—΄κΉŒμ§€ μ˜μ—­μ˜ ν…Œλ‘λ¦¬κ°€ μ‹œκ³„λ°©ν–₯으둜 νšŒμ „ν•©λ‹ˆλ‹€. μ΄λ•Œ, μ€‘μ•™μ˜ 15와 21이 μžˆλŠ” 영..