Claire's Study Note

[Python ์ฝ”ํ…Œ ์ž…๋ฌธ] 2. (๋ฌธ์ œ 5๋ฒˆ) ์ค‘๋ณต ์ œ๊ฑฐ

by Hi.Claire
๋ฐ˜์‘ํ˜•

๐Ÿ–ฅ๏ธ ์ž…๋ฌธ์ž๋ฅผ ์œ„ํ•œ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ํ•ต์‹ฌ - Python (๊น€ํƒœ์›, ์ธํ”„๋Ÿฐ)

 

์„น์…˜2. ๋ฐฐ์—ด, ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ, deque

 

(๋ฌธ์ œ 5๋ฒˆ) ์ค‘๋ณต ์ œ๊ฑฐ

์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ๋œ ์ˆ˜์—ด์ด ์ฃผ์–ด์ง€๋ฉด ์ค‘๋ณต๋œ ๊ฐ’์„ ์ œ๊ฑฐํ•˜๊ณ  ์œ ์ผ๊ฐ’์œผ๋กœ ๊ตฌ์„ฑ๋œ ๋‚ด๋ฆผ์ฐจ์ˆœ ์ˆ˜์—ด์„ ๋งŒ๋“ค๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

๋งค๊ฐœ๋ณ€์ˆ˜ nums์— ๊ธธ์ด๊ฐ€ n์ธ ์ˆ˜์—ด์ด ์ฃผ์–ด์ง€๋ฉด ์ค‘๋ณต๋œ ๊ฐ’์„ ์ œ๊ฑฐํ•˜๊ณ  ์œ ์ผ๊ฐ’๋งŒ์œผ๋กœ ๊ตฌ์„ฑ๋œ ๋‚ด๋ฆผ์ฐจ์ˆœ ์ˆ˜์—ด์„ ๋ฐฐ์—ด์— ๋‹ด์•„ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์„ธ์š”.

 

์ž…์ถœ๋ ฅ ์˜ˆ

nums answer
[0, 1, 1, 1, 2, 2, 2, 3] [3, 2, 1, 0]
[1, 1, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4, 5] [5, 4, 3, 2, 1]
[0, 0, 0, 3, 3, 3, 5, 7, 7, 7] [7, 5, 3, 0]
[1, 2, 3, 4, 5, 6, 7, 7, 7, 8, 9] [9, 8, 7, 6, 5, 4, 3, 2, 1]

 

์ œํ•œ์‚ฌํ•ญ

  • nums์˜ ๊ธธ์ด : 3 <= n <= 200,000
  • ๋ฐฐ์—ด nums์˜ ์›์†Œ๋Š” ์ •์ˆ˜์ž…๋‹ˆ๋‹ค. -10,000 <= nums[i] <= 10,000

 

ํ’€์ด

def deleteDuplicated(nums):
  answer = []
  newNums = set(nums)
  answer = sorted(newNums, reverse = True)

  return answer;

print(deleteDuplicated([0, 1, 1, 1, 2, 2, 2, 3]));
print(deleteDuplicated([1, 1, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4, 5]));
print(deleteDuplicated([0, 0, 0, 3, 3, 3, 5, 7, 7, 7]));
print(deleteDuplicated([1, 2, 3, 4, 5, 6, 7, 7, 7, 8, 9]));

[3, 2, 1, 0]

[5, 4, 3, 2, 1]

[7, 5, 3, 0]

[9, 8, 7, 6, 5, 4, 3, 2, 1]

 

ํ’€์ด ๊ณผ์ •

listํ˜•์˜ nums์—์„œ ์ค‘๋ณต๋œ ์›์†Œ๋ฅผ ์ œ๊ฑฐํ•˜๊ธฐ ์œ„ํ•ด set์œผ๋กœ ํ˜•๋ณ€ํ™˜์„ ํ•œ๋‹ค.

set์„ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๊ธฐ ์œ„ํ•ด sorted() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  reverse=True๋ฅผ ์ธ์ž๋กœ ์ค€๋‹ค.

๋‹ค์‹œ listํ˜•์ธ answer์— ๋‹ด์•„์„œ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

 

์ •๋‹ต ํ’€์ด

from collections import deque;

def solution(nums):
  answer = deque()
  answer.appendleft(nums[0])
  for i in range(1, len(nums)):
    if(nums[i] != nums[i-1]):
      answer.appendleft(nums[i]);
  return list(answer);

print(solution([0, 1, 1, 1, 2, 2, 2, 3]));
print(solution([1, 1, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4, 5]));
print(solution([0, 0, 0, 3, 3, 3, 5, 7, 7, 7]));
print(solution([1, 2, 3, 4, 5, 6, 7, 7, 7, 8, 9]));

[3, 2, 1, 0]

[5, 4, 3, 2, 1]

[7, 5, 3, 0]

[9, 8, 7, 6, 5, 4, 3, 2, 1]

๋ฐ˜์‘ํ˜•

๋ธ”๋กœ๊ทธ์˜ ์ •๋ณด

Claire's Study Note

Hi.Claire

ํ™œ๋™ํ•˜๊ธฐ