Claire's Study Note

[Python ์ฝ”ํ…Œ ์ž…๋ฌธ] 2. (๋ฌธ์ œ 3๋ฒˆ) ์—ฐ์†๋œ '1'์˜ ๊ธธ์ด

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

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

 

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

 

(๋ฌธ์ œ 3๋ฒˆ) ์—ฐ์†๋œ '1'์˜ ๊ธธ์ด

๋งค๊ฐœ๋ณ€์ˆ˜ nums์— 0๊ณผ 1๋กœ ๋œ ์ˆ˜์—ด์ด ์ฃผ์–ด์ง€๋ฉด 1์ด ์—ฐ์†๋œ ๋ถ€๋ถ„์ˆ˜์—ด ์ค‘ ๊ฐ€์žฅ ๊ธด ๋ถ€๋ถ„์ˆ˜์—ด์˜ ๊ธธ์ด๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์„ธ์š”.

 

์ž…์ถœ๋ ฅ ์˜ˆ

nums answer
[1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1] 5
[0, 0, 1, 0, 1, 0, 0] 1
[1, 1, 1, 1, 1] 5
[1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1] 3

 

์ œํ•œ์‚ฌํ•ญ

  • nums์˜ ๊ธธ์ด : 3 <= n <= 100,000

 

ํ’€์ด

๋ชจ๋ฅธ๋‹ค.

 

์ •๋‹ต ํ’€์ด

๋ถ„์„

์ฒซ ๋ฒˆ์งธ ์ œํ•œ์‚ฌํ•ญ์—์„œ ์ž…๋ ฅํฌ๊ธฐ๊ฐ€ ์ตœ๋Œ€ 100,000๊นŒ์ง€ ๋“ค์–ด์˜ค๋ฏ€๋กœ ํšจ์œจ์„ฑ์„ ๋”ฐ์ง€๋Š” ๋ฌธ์ œ๋‹ค.

๋ฐฐ์—ด์„ ์ˆœ์ฐจํƒ์ƒ‰ํ•˜๋ฉฐ ํ’€๋ฉด ๋˜๋ฏ€๋กœ ์‹œ๊ฐ„๋ณต์žก๋„๋Š” O(n)์ด๋‹ค.

 

ํ’€์ด

def solution(nums):
  answer = 0
  maxLength = 0
  for x in nums:
    if x == 1:
      maxLength += 1
    else:
      # ๊ธฐ์กด๊นŒ์ง€์˜ ์ตœ๋Œ€๊ธธ์ด์™€ ํ˜„์žฌ ์—ฐ์†๋œ ์ตœ๋Œ€๊ธธ์ด ์ค‘ ๋” ํฐ ๊ฐ’์„ ์ €์žฅํ•œ๋‹ค.
      answer = max(answer, maxLength)
      # 0์„ ๋งŒ๋‚˜ ์—ฐ์†๋œ 1์ด ๋๋‚ฌ์œผ๋ฏ€๋กœ maxLength๋ฅผ ๋‹ค์‹œ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค.
      maxLength = 0
  # ๋ฐฐ์—ด์˜ ๋งจ ๋งˆ์ง€๋ง‰์— ์—ฐ์†๋œ 1์ด ์žˆ์„ ๊ฒฝ์šฐ ์ตœ๋Œ€๊ธธ์ด๊ฐ€ ๋ฐ˜์˜๋˜์ง€ ์•Š์•˜์œผ๋ฏ€๋กœ ํ•œ ๋ฒˆ ๋” ์ตœ๋Œ€๊ธธ์ด๋ฅผ ๋น„๊ตํ•˜์—ฌ ๋” ํฐ ๊ฐ’์„ ์ €์žฅํ•œ๋‹ค.
  answer = max(answer, maxLength)
  return answer;

print(solution([1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1]));
print(solution([0, 0, 1, 0, 1, 0, 0]));
print(solution([1, 1, 1, 1, 1]));
print(solution([1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1]));

5

1

5

3

๋ฐ˜์‘ํ˜•

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

Claire's Study Note

Hi.Claire

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