[πŸ™ μ•Œκ³ λ¦¬μ¦˜] ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ lv.1- μ™„μ£Όν•˜μ§€ λͺ»ν•œ μ„ μˆ˜ / Python

dsfasdΒ·2022λ…„ 11μ›” 21일
0

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

문제


풀이

def solution(participant, completion):
    d = dict()

    for person in participant:
        if person not in d:
            d[person] = 1
        else:
            d[person] += 1

    for c in completion:
        if c in d:  
            d[c] -= 1

    for person in d.keys(): 
        if d.get(person) == 1:
            return person  

풀이과정

  1. dict둜 λ”•μ…”λ„ˆλ¦¬λ₯Ό μƒμ„±ν•œλ‹€. (λ°”λ‘œ { } 둜 μž‘μ„±ν•˜λŠ” 것도 κ°€λŠ₯ν•˜λ‹€.)
  2. participant 배열을 μˆœνšŒν•˜λ©° λ”•μ…”λ„ˆλ¦¬μ— 1둜 μ΄ˆκΈ°ν™”, 이미 λ”•μ…”λ„ˆλ¦¬μ— μ‘΄μž¬ν•˜λŠ” κ²½μš°μ—λŠ” +1
  3. completion 배열을 μˆœνšŒν•˜λ©° ν•΄λ‹Ή 값이 μžˆλŠ” κ²½μš°μ—λŠ” λ”•μ…”λ„ˆλ¦¬μ˜ 값을 -1
  4. 2-3의 과정을 ν†΅ν•΄μ„œ 동λͺ…μ΄μΈμ˜ 경우 λ˜ν•œ 필터링 κ°€λŠ₯ν•˜λ‹€.
  5. λ§ˆμ§€λ§‰μœΌλ‘œ completion 배열에 μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ” μ‚¬λžŒμ€ 1값을 κ°€μ§€λ―€λ‘œ κ·Έ μ‚¬λžŒμ΄ 결과값이 λœλ‹€.

λ”•μ…”λ„ˆλ¦¬ ꡬ쑰λ₯Ό μ‚¬μš©ν•˜λŠ” 이유 -> μ‹œκ°„ 단좕!

μœ„ λ¬Έμ œλŠ” ν•΄μ‹œλ₯Ό μ‚¬μš©ν•˜μ—¬ 풀라고 μ•Œλ €μ£ΌλŠ” λ¬Έμ œμ˜€λ‹€.

μœ„ λ¬Έμ œλŠ” ν•΄μ‹œλ₯Ό μ‚¬μš©ν•˜μ§€ μ•Šκ³ λ„ μ‰½κ²Œ κ΅¬ν˜„μ΄ κ°€λŠ₯ν•˜μ§€λ§Œ,
νš¨μœ¨μ„±μ—μ„œ ν†΅κ³Όλ˜μ§€ μ•Šμ•„μ„œ λ”•μ…”λ„ˆλ¦¬ ꡬ쑰λ₯Ό μ‚¬μš©ν•΄λ³΄κΈ°λ‘œ ν–ˆλ‹€.

νŒŒμ΄μ¬μ—μ„œ ν•΄μ‹œλ₯Ό κ΅¬ν˜„ν•˜κΈ° μœ„ν•΄μ„œλŠ” 파이썬의 λ”•μ…”λ„ˆλ¦¬λ₯Ό μ‚¬μš©ν•˜λ©΄ λœλ‹€.

λ”•μ…”λ„ˆλ¦¬ ꡬ쑰λ₯Ό μ“°λ©΄ μ•„λž˜μ™€ 같은 μž₯점이 μžˆλ‹€κ³  ν•œλ‹€.

  1. 리슀트λ₯Ό μ“Έ 수 없을 λ•Œ
    -> 문자 인덱슀처럼 μ‚¬μš©ν•˜κ³  싢은 경우
  2. λΉ λ₯Έ μ ‘κ·Ό / 탐색이 ν•„μš”ν•  λ•Œ
    -> λ”•μ…”λ„ˆλ¦¬ ν•¨μˆ˜μ˜ μ‹œκ°„λ³΅μž‘λ„λŠ” λŒ€λΆ€λΆ„ O(1)둜 맀우 빠름
  3. 집계가 ν•„μš”ν•  λ•Œ
    -> countλ©”μ„œλ“œλ₯Ό μ‚¬μš©, μ›μ†Œμ˜ 개수λ₯Ό μ„ΈλŠ” λ¬Έμ œμ—μ„œ 유리

μ°Έκ³ ν•˜λ©΄ 쒋은 λ”•μ…”λ„ˆλ¦¬ κ΄€λ ¨ λ©”μ„œλ“œ

dict = {'park':1,'kim':2,'Baek':3}

print(dict.keys()) # dict_keys(['park', 'kim', 'Baek'])
print(dict.values()) # dict_values([1, 2, 3])
print(dict.get('park')) # 1

dict.keys() - λ”•μ…”λ„ˆλ¦¬μ˜ 킀듀을 λ°˜ν™˜
dict.values() - λ”•μ…”λ„ˆλ¦¬μ˜ ν‚€μ˜ 값듀을 λ°˜ν™˜
dict.get(μ°Ύκ³ μžν•˜λŠ” ν‚€) - ν•΄λ‹Ή ν‚€μ˜ 값을 λ°˜ν™˜


μ°Έκ³ ν•˜λ©΄ 쒋은 λΈ”λ‘œκ·Έ!
https://yunaaaas.tistory.com/46

profile
기둝을 μ •λ¦¬ν•˜λŠ” 곡간!

0개의 λŒ“κΈ€