[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] νŠœν”Œ/Python - Lv.2

2025. 10. 7. 11:34Β·Coding Test/Algorithms

β“λ¬Έμ œ

https://school.programmers.co.kr/learn/courses/30/lessons/64065

μ„±λŠ₯ μš”μ•½

λ©”λͺ¨λ¦¬: 11.4 MB, μ‹œκ°„: 338.11 ms

ꡬ뢄

μ½”λ”©ν…ŒμŠ€νŠΈβ€…μ—°μŠ΅ > 2019β€…μΉ΄μΉ΄μ˜€β€…κ°œλ°œμžβ€…κ²¨μšΈβ€…μΈν„΄μ‹­

 
 

문제 μ„€λͺ…

μ…€μˆ˜μžˆλŠ” μˆ˜λŸ‰μ˜ μˆœμ„œμžˆλŠ” μ—΄κ±° λ˜λŠ” μ–΄λ–€ μˆœμ„œλ₯Ό λ”°λ₯΄λŠ” μš”μ†Œλ“€μ˜ λͺ¨μŒμ„ νŠœν”Œ(tuple)이라고 ν•©λ‹ˆλ‹€. n개의 μš”μ†Œλ₯Ό κ°€μ§„ νŠœν”Œμ„ n-νŠœν”Œ(n-tuple)이라고 ν•˜λ©°, λ‹€μŒκ³Ό 같이 ν‘œν˜„ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

  • (a1, a2, a3, ..., an)

νŠœν”Œμ€ λ‹€μŒκ³Ό 같은 μ„±μ§ˆμ„ κ°€μ§€κ³  μžˆμŠ΅λ‹ˆλ‹€.

  1. μ€‘λ³΅λœ μ›μ†Œκ°€ μžˆμ„ 수 μžˆμŠ΅λ‹ˆλ‹€. ex : (2, 3, 1, 2)
  2. μ›μ†Œμ— μ •ν•΄μ§„ μˆœμ„œκ°€ 있으며, μ›μ†Œμ˜ μˆœμ„œκ°€ λ‹€λ₯΄λ©΄ μ„œλ‘œ λ‹€λ₯Έ νŠœν”Œμž…λ‹ˆλ‹€. ex : (1, 2, 3) ≠ (1, 3, 2)
  3. νŠœν”Œμ˜ μ›μ†Œ κ°œμˆ˜λŠ” μœ ν•œν•©λ‹ˆλ‹€.

μ›μ†Œμ˜ κ°œμˆ˜κ°€ n개이고, μ€‘λ³΅λ˜λŠ” μ›μ†Œκ°€ μ—†λŠ” νŠœν”Œ (a1, a2, a3, ..., an)이 μ£Όμ–΄μ§ˆ λ•Œ(단, a1, a2, ..., an은 μžμ—°μˆ˜), μ΄λŠ” λ‹€μŒκ³Ό 같이 μ§‘ν•© 기호 '{', '}'λ₯Ό μ΄μš©ν•΄ ν‘œν˜„ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

  • {{a1}, {a1, a2}, {a1, a2, a3}, {a1, a2, a3, a4}, ... {a1, a2, a3, a4, ..., an}}

예λ₯Ό λ“€μ–΄ νŠœν”Œμ΄ (2, 1, 3, 4)인 경우 μ΄λŠ”

  • {{2}, {2, 1}, {2, 1, 3}, {2, 1, 3, 4}}

와 같이 ν‘œν˜„ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ΄λ•Œ, 집합은 μ›μ†Œμ˜ μˆœμ„œκ°€ λ°”λ€Œμ–΄λ„ μƒκ΄€μ—†μœΌλ―€λ‘œ

  • {{2}, {2, 1}, {2, 1, 3}, {2, 1, 3, 4}}
  • {{2, 1, 3, 4}, {2}, {2, 1, 3}, {2, 1}}
  • {{1, 2, 3}, {2, 1}, {1, 2, 4, 3}, {2}}

λŠ” λͺ¨λ‘ 같은 νŠœν”Œ (2, 1, 3, 4)λ₯Ό λ‚˜νƒ€λƒ…λ‹ˆλ‹€.

νŠΉμ • νŠœν”Œμ„ ν‘œν˜„ν•˜λŠ” 집합이 λ‹΄κΈ΄ λ¬Έμžμ—΄ sκ°€ λ§€κ°œλ³€μˆ˜λ‘œ μ£Όμ–΄μ§ˆ λ•Œ, sκ°€ ν‘œν˜„ν•˜λŠ” νŠœν”Œμ„ 배열에 λ‹΄μ•„ return ν•˜λ„λ‘ solution ν•¨μˆ˜λ₯Ό μ™„μ„±ν•΄μ£Όμ„Έμš”.

βœπŸ»ν’€μ΄

λ¨Όμ € μ£Όμ–΄μ§„ 문자λ₯Ό λ‚˜λˆ μ•Ό ν•œλ‹€. κ·ΈλŸ¬λ―€λ‘œ stripκ³Ό split을 μ΄μš©ν•΄ λ‚˜λˆ„μ–΄ 리슀트둜 λ§Œλ“ λ‹€. 이후 이것을 길이 순으둜 μ •λ ¬ν•΄μ€€λ‹€. 그러면 ν˜„μž¬ λ¦¬μŠ€νŠΈλŠ” ["2", "2,1", "2,1,3", "2,1,3,4"]둜 정렬됨을 μ•Œ 수 μžˆλ‹€.

이제 리슀트λ₯Ό λ‹€μ‹œ ','λ₯Ό κΈ°μ€€μœΌλ‘œ λ‚˜λˆ μ„œ 리슀트λ₯Ό λ§Œλ“€κ³  이 리슀트λ₯Ό μ‚΄ν”Όλ©° μ›μ†Œκ°€ answer에 λ“€μ–΄μžˆμ§€ μ•Šλ‹€λ©΄ λ„£λŠ”λ‹€. μ΄λ ‡κ²Œ ν•˜λ©΄ μ€‘λ³΅λ˜λŠ” μ›μ†Œ 없이 νŠœν”Œμ„ λ‚˜νƒ€λ‚Ό 수 μžˆλ‹€.

πŸ’»μ½”λ“œ

def solution(s):
    answer = []
    l = list(s.strip('{{').strip('}}').split('},{'))
    l.sort(key=len)
    for i in range(len(l)):
        c = list(map(int, l[i].split(',')))
        for j in range(len(c)):
            if c[j] not in answer:
                answer.append(c[j])
    
    return answer

πŸ“ν›„κΈ°

μ²˜μŒμ— 정렬을 λ”°λ‘œ ν–ˆμ„ λ•Œμ™€ sorted() μ΄μš©ν•΄μ„œ for문에 λ°”λ‘œ ν–ˆμ„ λ•Œμ™€ μ‹œκ°„ 차이가 큰 것 κ°™λ‹€.

μ €μž‘μžν‘œμ‹œ λΉ„μ˜λ¦¬ λ³€κ²½κΈˆμ§€ (μƒˆμ°½μ—΄λ¦Ό)

'Coding Test > Algorithms' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] [3μ°¨] nμ§„μˆ˜ κ²Œμž„/Python - Lv.2  (0) 2025.10.09
[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] [1μ°¨] λ‰΄μŠ€ ν΄λŸ¬μŠ€ν„°λ§/Python - Lv.2  (0) 2025.10.02
[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] [1μ°¨] 비밀지도/Python - Lv.1  (0) 2025.10.01
[λ°±μ€€] 2075. N번째 큰 수/Python - Silver3  (0) 2025.09.23
[λ°±μ€€] 20040. 사이클 κ²Œμž„/Python - Gold4  (0) 2025.09.10
'Coding Test/Algorithms' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
  • [ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] [3μ°¨] nμ§„μˆ˜ κ²Œμž„/Python - Lv.2
  • [ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] [1μ°¨] λ‰΄μŠ€ ν΄λŸ¬μŠ€ν„°λ§/Python - Lv.2
  • [ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] [1μ°¨] 비밀지도/Python - Lv.1
  • [λ°±μ€€] 2075. N번째 큰 수/Python - Silver3
The Engineer, Lucy
The Engineer, Lucy
  • The Engineer, Lucy
    Growing up for My FutureπŸ’•
    The Engineer, Lucy
    • Instagram
    • GitHub
  • 전체
    였늘
    μ–΄μ œ
    • λΆ„λ₯˜ 전체보기 (186) N
      • Linux (26)
      • Infra (9)
      • Cloud (27) N
        • AWS (3) N
        • GCP (4)
        • Docker (4)
        • Kubernetes (14)
        • IaC (2)
      • NGINX (1)
      • DevOps (3)
      • Computer Science (17)
        • Data Structure (0)
        • Algorithms (1)
        • Operating System (3)
        • Network (11)
        • Database System (2)
      • Coding Test (97)
        • Algorithms (89)
        • SQL (7)
      • ETC (6)
  • λΈ”λ‘œκ·Έ 메뉴

    • ν™ˆ
    • νƒœκ·Έ
    • λ°©λͺ…둝
  • 곡지사항

  • 링크

    • Lucy's Instagram
    • Lucy's GitHub
  • 인기 κΈ€

  • νƒœκ·Έ

    λ‹€μ΄λ‚˜λ―Ή ν”„λ‘œκ·Έλž˜λ°
    Linux
    λ¦¬λˆ…μŠ€
    μ½”λ”©ν…ŒμŠ€νŠΈ 곡뢀
    programmers
    λ„€νŠΈμ›Œν¬
    λ„ˆλΉ„μš°μ„ νƒμƒ‰
    μΏ λ²„λ„€ν‹°μŠ€
    cs 기초 지식 정리
    μ˜€λΈ”μ™„
    network
    Java
    λ°±μ€€
    λ¦¬λˆ…μŠ€λ§ˆμŠ€ν„° 2κΈ‰
    μžλ°”
    Kubernetes
    Shell
    ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€
    Baekjoon
    terraform
    μ‰˜ 슀크립트
    dfs
    bfs
    도컀
    Shell Script
    μ…Έ 슀크립트
    docker
    K8s
    ν‹°μŠ€ν† λ¦¬μ±Œλ¦°μ§€
    λ„€νŠΈμ›Œν¬ 기초 지식
  • 졜근 λŒ“κΈ€

  • 졜근 κΈ€

  • hELLOΒ· Designed Byμ •μƒμš°.v4.10.3
The Engineer, Lucy
[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] νŠœν”Œ/Python - Lv.2
μƒλ‹¨μœΌλ‘œ

ν‹°μŠ€ν† λ¦¬νˆ΄λ°”