๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์•Œ๊ณ ๋ฆฌ์ฆ˜ ๐Ÿ’ก/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค_์Šคํƒ/ํ] ๊ฐ™์€ ์ˆซ์ž๋Š” ์‹ซ์–ด (ํŒŒ์ด์ฌ)

by @ENFJ 2022. 12. 6.

๋ฌธ์ œ ์„ค๋ช…

(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๋ฒˆ์งธ ๋ฐฐ์—ด์€ ๋ฌด์กฐ๊ฑด ์ถ”๊ฐ€ํ•ด์ค๋‹ˆ๋‹ค. (์ฆ‰, ์ฒซ๋ฒˆ์งธ ์ธ๋ฑ์Šค๋ฅผ ๋œปํ•จ)

์™œ๋ƒํ•˜๋ฉด ๋นˆ ๋ฐฐ์—ด ๊ณต๊ฐ„์— ์ฒ˜์Œ ์ถ”๊ฐ€ํ•˜๋Š” ์ˆ˜๋Š” ์ค‘๋ณต์ด ์—†๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

 

๊ทธ ํ›„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ๋ถ€ํ„ฐ๋Š” ์กฐ๊ฑด์„ ์ถ”๊ฐ€ํ•ด์ฃผ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.

์ €๋Š” ์ถ”๊ฐ€ํ•  ์ˆ˜ ์™€ ๋ฐ”๋กœ ์•ž์— ์ถ”๊ฐ€๋œ ์ˆ˜๋ฅผ ๋น„๊ตํ•˜์˜€๋Š”๋ฐ์š”, ๋งŒ์•ฝ ๊ฐ™์ง€ ์•Š๋‹ค๋ฉด ์ค‘๋ณต์ด ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ถ”๊ฐ€ํ•ด์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.