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

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค LV.0] ํ‰ํ–‰

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

ํ‰ํ–‰

๋ฌธ์ œ ์„ค๋ช…

์  ๋„ค ๊ฐœ์˜ ์ขŒํ‘œ๋ฅผ ๋‹ด์€ ์ด์ฐจ์› ๋ฐฐ์—ด dots๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค.

  • [[x1, y1], [x2, y2], [x3, y3], [x4, y4]]

์ฃผ์–ด์ง„ ๋„ค ๊ฐœ์˜ ์ ์„ ๋‘ ๊ฐœ์”ฉ์ด์—ˆ์„ ๋•Œ, ๋‘ ์ง์„ ์ด ํ‰ํ–‰์ด ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์œผ๋ฉด 1์„ ์—†์œผ๋ฉด 0์„ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด ๋ณด์„ธ์š”.

์ œํ•œ ์‚ฌํ•ญ

  • 0 ≤ dots์˜ ์›์†Œ ≤ 100
  • dots์˜ ๊ธธ์ด = 4
  • dots์˜ ์›์†Œ์˜ ๊ธธ์ด = 2
  • dots์˜ ์›์†Œ๋Š” [x, y] ํ˜•ํƒœ์ด๋ฉฐ x, y๋Š” ์ •์ˆ˜์ž…๋‹ˆ๋‹ค.
  • ์„œ๋กœ ๋‹ค๋ฅธ ๋‘ ๊ฐœ ์ด์ƒ์˜ ์ ์ด ๊ฒน์น˜๋Š” ๊ฒฝ์šฐ๋Š” ์—†์Šต๋‹ˆ๋‹ค.
  • ๋‘ ์ง์„ ์ด ๊ฒน์น˜๋Š” ๊ฒฝ์šฐ(์ผ์น˜ํ•˜๋Š” ๊ฒฝ์šฐ)์—๋„ 1์„ return ํ•ด์ฃผ์„ธ์š”.
  • ์ž„์˜์˜ ๋‘ ์ ์„ ์ด์€ ์ง์„ ์ด x์ถ• ๋˜๋Š” y์ถ•๊ณผ ํ‰ํ–‰ํ•œ ๊ฒฝ์šฐ๋Š” ์ฃผ์–ด์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ

dots result
[[1, 4], [9, 2], [3, 8], [11, 6]] 1
[[3, 5], [4, 1], [2, 4], [5, 10]] 0

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

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

  • ์  [1, 4], [3, 8]์„ ์ž‡๊ณ  [9, 2], [11, 6]๋ฅผ ์ด์œผ๋ฉด ๋‘ ์„ ๋ถ„์€ ํ‰ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

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

  • ์ ์„ ์–ด๋–ป๊ฒŒ ์—ฐ๊ฒฐํ•ด๋„ ํ‰ํ–‰ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ œ์ถœ

import Foundation

func slope(_ dot1: [Int], _ dot2: [Int]) -> Double{
    return Double(dot2[1] - dot1[1]) / Double(dot2[0] - dot1[0])
}

func solution(_ dots:[[Int]]) -> Int {
    
    if slope(dots[0], dots[1]) == slope(dots[2], dots[3]) {return 1}
    if slope(dots[0], dots[2]) == slope(dots[1], dots[3]) {return 1}
    if slope(dots[0], dots[3]) == slope(dots[1], dots[2]) {return 1}

    return 0
}
์ง์„ ์˜ ๊ธฐ์šธ๊ธฐ๋ฅผ ๊ตฌํ•˜๋Š” ํ•จ์ˆ˜ slope๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.
๋‘ ์ง์„ ์˜ ๊ธฐ์šธ๊ธฐ๊ฐ€ ์„œ๋กœ ๊ฐ™๋‹ค๋ฉด ํ‰ํ–‰์ด๋ฏ€๋กœ 1์„ ๋ฐ˜ํ™˜
๋ฐ˜์‘ํ˜•