โ“  ๋ฌธ์ œ

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

 

๐Ÿ›Ž๏ธ  ์•„์ด๋””์–ด

- 1์ฐจ ์•„์ด๋””์–ด
  queue์ด๊ธฐ ๋•Œ๋ฌธ์— ๋‘˜๋‹ค list -> queue ํ˜•ํƒœ๋กœ ๋งŒ๋“ค์–ด์„œ popleft() ์‚ฌ์šฉ

- 2์ฐจ ์•„์ด๋””์–ด
  queue1, queue2๋ฅผ ์—ฐ๊ฒฐํ•ด์„œ ํ•˜๋‚˜์˜ ๋ฆฌ์ŠคํŠธ๋กœ ๋งŒ๋“  ํ›„ ๊ทธ ์•ˆ์—์„œ ๊ทœ์น™์„ ์ฐพ๋Š”๋‹ค.
  -> ์˜ˆ์™ธ ๋‚ด์šฉ์œผ๋กœ ์ธํ•ด ์ •๊ทœ์‹์ด ๋‚˜์˜ค์ง€ ์•Š์Œ.

- 3์ฐจ ์•„์ด๋””์–ด
  ๋ธ”๋กœ๊ทธ ์ฐธ๊ณ ํ•ด์„œ ํ•ฉ์ด ํฐ ํ -> ํ•ฉ์ด ์ž‘์€ ํ๋กœ ์›์†Œ๋ฅผ ํ•˜๋‚˜์”ฉ ์ด๋™์‹œํ‚ค๋Š” ์•„์ด๋””์–ด๋ฅผ ์–ป์Œ
  + while True๋กœ ์‹œ๊ฐ„์ดˆ๊ณผ ๊ฑธ๋ ค์„œ ์ฐพ์•„๋ณธ ๊ฒฐ๊ณผ 300000๋กœ ์ œํ•œ ๊ฑธ๊ฑฐ๋‚˜ ์ค‘๊ฐ„์— count๋ฅผ ๋„ฃ์–ด์„œํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Œ.

 

๐Ÿ’ป  ํ’€์ด

from collections import deque

def solution(queue1, queue2):
  q1, q2 = deque(queue1), deque(queue2)
  sum1, sum2 = sum(q1), sum(q2)

  for i in range(300000):
    if sum1 == sum2:
      return i
    elif sum1 > sum2:
      num = q1.popleft()
      q2.append(num)
      sum1 -= num
      sum2 += num
    else:
      num = q2.popleft()
      q1.append(num)
      sum2 -= num
      sum1 += num
  return -1

print(solution([3, 2, 7, 2], [4, 6, 5, 1]))

+ Recent posts