MUKER_DEV with iOS

[swift] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ์—ฐ์†๋œ ๋ถ€๋ถ„ ์ˆ˜์—ด์˜ ํ•ฉ ๋ณธ๋ฌธ

๐Ÿค– ์•Œ๊ณ ๋ฆฌ์ฆ˜/programmers

[swift] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ์—ฐ์†๋œ ๋ถ€๋ถ„ ์ˆ˜์—ด์˜ ํ•ฉ

MUKER 2023. 5. 5. 16:13
 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr


์„ฑ๊ณต ํ’€์ด

func solution(_ sequence:[Int], _ k:Int) -> [Int] {
  var (left,right) = (0,0)
  var num = sequence[0]
  var count = 1
  var min = [0,10000000]
  
  while true {
  
    if num == k && count < (min[1]-min[0]+1) {
      min = [left,right]
    }
    
    if num < k {
      right += 1
      count += 1
      if right == sequence.count { break }
      num += sequence[right]
      continue
    }
    
    num -= sequence[left]
    left += 1
    
    if left == sequence.count { break }
    count -= 1
    
  }
    return min
}

ํ’€์ด ํ‚ค์›Œ๋“œ

ํˆฌ ํฌ์ธํ„ฐ