๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
โŒจ๏ธ Language/swift

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค LV.0] ์‚ผ๊ฐํ˜•์˜ ์™„์„ฑ์กฐ๊ฑด (2)

by hyebin (Helia) 2023. 1. 2.
๋ฐ˜์‘ํ˜•

์‚ผ๊ฐํ˜•์˜ ์™„์„ฑ์กฐ๊ฑด

๋ฌธ์ œ ์„ค๋ช…

์„ ๋ถ„ ์„ธ ๊ฐœ๋กœ ์‚ผ๊ฐํ˜•์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • ๊ฐ€์žฅ ๊ธด ๋ณ€์˜ ๊ธธ์ด๋Š” ๋‹ค๋ฅธ ๋‘ ๋ณ€์˜ ๊ธธ์ด์˜ ํ•ฉ๋ณด๋‹ค ์ž‘์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์‚ผ๊ฐํ˜•์˜ ๋‘ ๋ณ€์˜ ๊ธธ์ด๊ฐ€ ๋‹ด๊ธด ๋ฐฐ์—ด sides์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. ๋‚˜๋จธ์ง€ ํ•œ ๋ณ€์ด ๋  ์ˆ˜ ์žˆ๋Š” ์ •์ˆ˜์˜ ๊ฐœ์ˆ˜๋ฅผ returnํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

์ œํ•œ ์‚ฌํ•ญ

  • sides์˜ ์›์†Œ๋Š” ์ž์—ฐ์ˆ˜์ž…๋‹ˆ๋‹ค.
  • sides์˜ ๊ธธ์ด๋Š” 2์ž…๋‹ˆ๋‹ค.
  • 1 ≤ sides์˜ ์›์†Œ ≤ 1,000

์ž…์ถœ๋ ฅ ์˜ˆ

sides result
[1, 2] 1
[3, 6] 5
[11, 7] 13

์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…

์ž…์ถœ๋ ฅ ์˜ˆ #1

  • ๋‘ ๋ณ€์ด 1, 2 ์ธ ๊ฒฝ์šฐ ์‚ผ๊ฐํ˜•์„ ์™„์„ฑ์‹œํ‚ค๋ ค๋ฉด ๋‚˜๋จธ์ง€ ํ•œ ๋ณ€์ด 2์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ 1์„ returnํ•ฉ๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ #2

  • ๊ฐ€์žฅ ๊ธด ๋ณ€์ด 6์ธ ๊ฒฝ์šฐ
    • ๋  ์ˆ˜ ์žˆ๋Š” ๋‚˜๋จธ์ง€ ํ•œ ๋ณ€์€ 4, 5, 6 ๋กœ 3๊ฐœ์ž…๋‹ˆ๋‹ค.
  • ๋‚˜๋จธ์ง€ ํ•œ ๋ณ€์ด ๊ฐ€์žฅ ๊ธด ๋ณ€์ธ ๊ฒฝ์šฐ
    • ๋  ์ˆ˜ ์žˆ๋Š” ํ•œ ๋ณ€์€ 7, 8 ๋กœ 2๊ฐœ์ž…๋‹ˆ๋‹ค.
  • ๋”ฐ๋ผ์„œ 3 + 2 = 5๋ฅผ returnํ•ฉ๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ #3

  • ๊ฐ€์žฅ ๊ธด ๋ณ€์ด 11์ธ ๊ฒฝ์šฐ
    • ๋  ์ˆ˜ ์žˆ๋Š” ๋‚˜๋จธ์ง€ ํ•œ ๋ณ€์€ 5, 6, 7, 8, 9, 10, 11 ๋กœ 7๊ฐœ์ž…๋‹ˆ๋‹ค.
  • ๋‚˜๋จธ์ง€ ํ•œ ๋ณ€์ด ๊ฐ€์žฅ ๊ธด ๋ณ€์ธ ๊ฒฝ์šฐ
    • ๋  ์ˆ˜ ์žˆ๋Š” ํ•œ ๋ณ€์€ 12, 13, 14, 15, 16, 17 ๋กœ 6๊ฐœ์ž…๋‹ˆ๋‹ค.
  • ๋”ฐ๋ผ์„œ 7 + 6 = 13์„ returnํ•ฉ๋‹ˆ๋‹ค.

์ œ์ถœ

import Foundation

func solution(_ sides:[Int]) -> Int {
    var first = max(sides[0], sides[1])
    var second = min(sides[0], sides[1])
    var answer = 0
    
    answer += ((first - second+1)...first).count
    answer += ((first+1)..<(first+second)).count

    
    return answer
}

 

๋ฐ˜์‘ํ˜•