πŸ“šκ³΅λΆ€/μ½”λ”©ν…ŒμŠ€νŠΈ

ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ - 체윑볡, 파이썬

Janger 2021. 11. 16. 09:53
728x90

https://programmers.co.kr/learn/courses/30/lessons/42862

 

μ½”λ”©ν…ŒμŠ€νŠΈ μ—°μŠ΅ - 체윑볡

μ μ‹¬μ‹œκ°„μ— 도둑이 λ“€μ–΄, 일뢀 학생이 μ²΄μœ‘λ³΅μ„ λ„λ‚œλ‹Ήν–ˆμŠ΅λ‹ˆλ‹€. λ‹€ν–‰νžˆ μ—¬λ²Œ 체윑볡이 μžˆλŠ” 학생이 μ΄λ“€μ—κ²Œ μ²΄μœ‘λ³΅μ„ 빌렀주렀 ν•©λ‹ˆλ‹€. ν•™μƒλ“€μ˜ λ²ˆν˜ΈλŠ” 체격 순으둜 맀겨져 μžˆμ–΄, λ°”λ‘œ μ•žλ²ˆ

programmers.co.kr

def solution(n, lost, reserve):
    
    answer = 0
    
        
    # μ—¬λ²Œ μ²΄μœ‘λ³΅μ„ κ°€μ Έμ˜¨ 학생이 μ²΄μœ‘λ³΅μ„ λ„λ‚œλ‹Ήν–ˆμ„ 수 μžˆμŠ΅λ‹ˆλ‹€. μ΄λ•Œ 이 학생은 μ²΄μœ‘λ³΅μ„ ν•˜λ‚˜λ§Œ λ„λ‚œλ‹Ήν–ˆλ‹€κ³  κ°€μ •ν•˜λ©°, 남은 체윑볡이 ν•˜λ‚˜μ΄κΈ°μ— λ‹€λ₯Έ ν•™μƒμ—κ²ŒλŠ” μ²΄μœ‘λ³΅μ„ λΉŒλ €μ€„ 수 μ—†μŠ΅λ‹ˆλ‹€.
    lostTmp = list( set(lost) - set(reserve) )
    reserveTmp = list( set(reserve) - set(lost) )
    

    lost = lostTmp
    reserve = reserveTmp
    
    
    for res in reserve:

        if res-1 in lost:
            
            lost.remove(res-1)
        
        elif res+1 in lost:

            lost.remove(res+1)
            
    answer = n - len(lost)
    

    return answer

 

λ§Žμ€ 것을 μƒκ°ν•˜κ²Œ ν•΄ μ€€ λ¬Έμ œμž„

 

μš°μ„  첫 번째둜 글은 λ‹€ 읽어 봐야 ν•  것. 

문제 쀑 λ§ˆμ§€λ§‰μ―€μ— "μ—¬λ²Œ μ²΄μœ‘λ³΅μ„ κ°€μ Έμ˜¨ 학생이 μ²΄μœ‘λ³΅μ„ λ„λ‚œλ‹Ήν•  μˆ˜κ°€ μžˆλ‹€λŠ”" 이런 함정 쑰건이 μžˆμ—ˆλŠ”λ° 이λ₯Ό 읽지 λͺ»ν•˜κ³  λ°”λ‘œ 문제 ν‘ΈλŠ” κ²ƒμ—λ§Œ 집념을 ν–ˆλ‹€.. 

 

문제λ₯Ό 풀기전에 μ΅œλŒ€ν•œ 문제의 쑰건듀을 λ‹€ νŒŒμ•…ν•˜λ €κ³  λ…Έλ ₯ν•˜κ³ , ν‘ΈλŠ” 쀑에도 λ­”κ°€ μ•ˆ ν’€λ¦¬λŠ” κ²½μš°κ°€ 있으면 λ‹€μ‹œ 문제λ₯Ό μ‚΄νŽ΄λ΄μ•Ό ν•  것 κ°™λ‹€. 

 

두 λ²ˆμ§Έλ‘œλŠ” λ³€μˆ˜ λͺ…도 μ•ŒκΈ° μ‰½κ²Œ μ„ μ–Έ ν•΄μ£ΌλŠ” 것. 

for문을 μ“Έ λ•Œ 자꾸 i ν˜Ήμ€ j 같은 λ³€μˆ˜λͺ…λ§Œ μ“°λŠ” 것을 κ³ μ§‘ν•΄ μ™”λŠ”λ°, 문제λ₯Ό ν‘Ό λ‹€λ₯Έ μ‚¬λžŒλ“€μ€ λŒ€λΆ€λΆ„μ΄ μ•ŒκΈ° μ‰¬μš΄ λ³€μˆ˜λͺ…을 μ“΄ 것을 λ³΄μ•˜λ‹€. 

ex) reserve -> res, lost -> los

ν™•μ‹€νžˆ λ³€μˆ˜ λͺ…을 μ•ŒκΈ° μ‰½κ²Œλ” 선언을 ν•΄μ£Όλ‹ˆκΉ 머리가 덜 μ•„ν”„λ‹€. 

 

μ„Έ λ²ˆμ§ΈλŠ” μ‚¬μš©ν•˜λŠ” 언어에 λŒ€ν•΄μ„œ λ§Žμ€ 것을 μ•Œμ•„κ°”λ‹€λŠ” 것. 

μ²˜μŒμ—λŠ” reserveλ₯Ό μ°Έμ‘°ν•˜λŠ” forλ¬Έμ—μ„œ reserve.remove() λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•΄ 리슀트λ₯Ό ν•˜λ‚˜μ”© μ œκ±°ν•˜λŠ”λ° λ­”κ°€ 잘 μž‘λ™μ„ ν•˜μ§€ μ•Šμ•˜λ‹€. 

이에 λŒ€ν•΄μ„œ ꡬ글링을 μ’€ ν•΄λ³΄λ‹ˆκΉ for문이 돌고 μžˆμ„ λ•Œμ—  μ°Έμ‘°ν•˜λŠ” 리슀트의 데이터가 손상이 되면 λ°˜λ³΅λ¬Έμ—μ„œ λΉ μ Έλ‚˜κ°„λ‹€λŠ” 글을 λ³Ό 수 μžˆμ—ˆλ‹€. 

https://devpouch.tistory.com/110

 

[python] list둜 forλ¬Έ λŒλ©΄μ„œ removeν• λ•Œ μ£Όμ˜ν• μ 

μ›λž˜ 리슀트λ₯Ό for 문을 λŒλ©΄μ„œ μ›μ†Œλ₯Ό ν•˜λ‚˜μ”© μ œκ±°ν•˜λ €κ³  ν–ˆλŠ”λ° μ›ν•˜λŠ” λŒ€λ‘œ λ˜μ§€ μ•Šμ•˜λ‹€. λ¬Έμ œλŠ” λ‹€μŒκ³Ό κ°™μ•˜λ‹€. 리슀트λ₯Ό λŒλ©΄μ„œ μ›μ†Œλ₯Ό μ œκ±°ν• λ•Œ >>> l = [1, 2, 3, 4, 5] >>> >>> for i in l: ... print(i).

devpouch.tistory.com

μ•„λ¬΄νŠΌ 이외에도 집합을 λ‹€λ£¨λŠ” ν•¨μˆ˜μΈ set() ν•¨μˆ˜λ„ μ•Œ 수 μžˆμ—ˆλ‹€λŠ” λ“± νŒŒμ΄μ¬μ— λŒ€ν•΄μ„œ λ§Žμ€ κ²½ν—˜μ„ ν•  수 μžˆμ—ˆμœΌλ©° λ‚˜μ€‘μ—λ„ λ§Žμ€ 도움이 될 거라고 μƒκ°ν•œλ‹€. 

 

λ§ˆμ§€λ§‰μœΌλ‘œλŠ” κ²½ν—˜μ΄ 많으면 무쑰건 쒋을 수 밖에 μ—†λ‹€. 

μ§€κΈˆκΉŒμ§€ λ§Žμ€ 것을 μ•Œκ²Œ ν•΄μ€€ 것이 λ‹€ 이런 κ²½ν—˜ 덕뢄이라고 μƒκ°ν•œλ‹€. 

 

μ½”ν…ŒλΏλ§Œ μ•„λ‹ˆλΌ, λ‹€μ–‘ν•œ κ²½ν—˜μ„ 많이 ν•˜λ©΄μ€ ν™•μ‹€νžˆ 쒋은 이읡이 생길 μˆ˜λ°–μ— μ—†λ‹€. 

 

 

 

 

728x90