μ•Œκ³ λ¦¬μ¦˜ πŸ’‘/ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€

[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€_μŠ€νƒ/큐] 같은 μˆ«μžλŠ” μ‹«μ–΄ (파이썬)

@ENFJ 2022. 12. 6. 22:54

문제 μ„€λͺ…

(https://school.programmers.co.kr/learn/courses/30/lessons/12906?language=python3)

λ°°μ—΄ arrκ°€ μ£Όμ–΄μ§‘λ‹ˆλ‹€. λ°°μ—΄ arr의 각 μ›μ†ŒλŠ” 숫자 0λΆ€ν„° 9κΉŒμ§€λ‘œ 이루어져 μžˆμŠ΅λ‹ˆλ‹€. μ΄λ•Œ, λ°°μ—΄ arrμ—μ„œ μ—°μ†μ μœΌλ‘œ λ‚˜νƒ€λ‚˜λŠ” μˆ«μžλŠ” ν•˜λ‚˜λ§Œ 남기고 μ „λΆ€ μ œκ±°ν•˜λ €κ³  ν•©λ‹ˆλ‹€. 단, 제거된 ν›„ 남은 μˆ˜λ“€μ„ λ°˜ν™˜ν•  λ•ŒλŠ” λ°°μ—΄ arr의 μ›μ†Œλ“€μ˜ μˆœμ„œλ₯Ό μœ μ§€ν•΄μ•Ό ν•©λ‹ˆλ‹€. 예λ₯Ό λ“€λ©΄,

  • arr = [1, 1, 3, 3, 0, 1, 1] 이면 [1, 3, 0, 1] 을 return ν•©λ‹ˆλ‹€.
  • arr = [4, 4, 4, 3, 3] 이면 [4, 3] 을 return ν•©λ‹ˆλ‹€.

λ°°μ—΄ arrμ—μ„œ μ—°μ†μ μœΌλ‘œ λ‚˜νƒ€λ‚˜λŠ” μˆ«μžλŠ” μ œκ±°ν•˜κ³  남은 μˆ˜λ“€μ„ return ν•˜λŠ” solution ν•¨μˆ˜λ₯Ό μ™„μ„±ν•΄ μ£Όμ„Έμš”.

μ œν•œμ‚¬ν•­
  • λ°°μ—΄ arr의 크기 : 1,000,000 μ΄ν•˜μ˜ μžμ—°μˆ˜
  • λ°°μ—΄ arr의 μ›μ†Œμ˜ 크기 : 0보닀 ν¬κ±°λ‚˜ κ°™κ³  9보닀 μž‘κ±°λ‚˜ 같은 μ •μˆ˜

 

μ½”λ“œ

def solution(arr):
    answer = []
    # [μ‹€ν–‰] λ²„νŠΌμ„ λˆ„λ₯΄λ©΄ 좜λ ₯ 값을 λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€.
    for i in range(len(arr)):
        # print(i) -> 0,1,2,3,4,5,6
        # print(arr) -> [1,1,3,3,0,1,1]
        if i == 0:
            answer.append(arr[i])
        elif arr[i] != arr[i-1]:
            answer.append(arr[i])
    return answer

 

μ½”λ“œ μ„€λͺ…

0번째 배열은 무쑰건 μΆ”κ°€ν•΄μ€λ‹ˆλ‹€. (즉, 첫번째 인덱슀λ₯Ό λœ»ν•¨)

μ™œλƒν•˜λ©΄ 빈 λ°°μ—΄ 곡간에 처음 μΆ”κ°€ν•˜λŠ” μˆ˜λŠ” 쀑볡이 μ—†κΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€.

 

κ·Έ ν›„ μΆ”κ°€ν•  수 λΆ€ν„°λŠ” 쑰건을 μΆ”κ°€ν•΄μ£Όμ–΄μ•Όν•©λ‹ˆλ‹€.

μ €λŠ” μΆ”κ°€ν•  수 와 λ°”λ‘œ μ•žμ— μΆ”κ°€λœ 수λ₯Ό λΉ„κ΅ν•˜μ˜€λŠ”λ°μš”, λ§Œμ•½ κ°™μ§€ μ•Šλ‹€λ©΄ 쀑볡이 μ•„λ‹ˆκΈ° λ•Œλ¬Έμ— μΆ”κ°€ν•΄μ£Όμ—ˆμŠ΅λ‹ˆλ‹€.