티스토리 뷰
문제 설명
사분면은 한 평면을 x축과 y축을 기준으로 나눈 네 부분입니다. 사분면은 아래와 같이 1부터 4까지 번호를매깁니다.
스크린샷 2022-07-07 오후 3.27.04 복사본.png
x 좌표와 y 좌표가 모두 양수이면 제1사분면에 속합니다.
x 좌표가 음수, y 좌표가 양수이면 제2사분면에 속합니다.
x 좌표와 y 좌표가 모두 음수이면 제3사분면에 속합니다.
x 좌표가 양수, y 좌표가 음수이면 제4사분면에 속합니다.
x 좌표 (x, y)를 차례대로 담은 정수 배열 dot이 매개변수로 주어집니다. 좌표 dot이 사분면 중 어디에 속하는지 1, 2, 3, 4 중 하나를 return 하도록 solution 함수를 완성해주세요.
제한 조건
dot의 길이 = 2
dot[0]은 x좌표를, dot[1]은 y좌표를 나타냅니다
-500 ≤ dot의 원소 ≤ 500
dot의 원소는 0이 아닙니다.
내 답안
func solution(_ dot:[Int]) -> Int {
let x = dot[0]
let y = dot[1]
if x > 0 && y > 0 {
return 1
} else if x < 0 && y > 0 {
return 2
} else if x < 0 && y < 0 {
return 3
} else {
return 4
}
}
접근 방법
0 이상이면 음수, 0 이하면 양수라고 판단해서 진행
다른 풀이
func solution(_ dot:[Int]) -> Int {
let x = dot[0]
let y = dot[1]
if x > 0 {
return y > 0 ? 1 : 4
} else {
return y > 0 ? 2 : 3
}
}
if 문을 조금 더 간단하게 쓸 수도 있었다
if 문 안에 삼항여산자를 쓸 수도 있었다
문제 풀어 보고 한 번 더 코드를 재정리해볼 것
func solution(_ dot:[Int]) -> Int {
switch (dot[0], dot[1]) {
case (0..., 0...): return 1
case (...0, 0...): return 2
case (...0, ...0): return 3
case (0..., ...0): return 4
default: return 0
}
}
스위치 문으로도 풀어보고 싶었지만 생각이 안 났는데 이런 풀이 방식도 있었다
알게 된 것
'코딩테스트' 카테고리의 다른 글
Lv.0 Swift 문자 반복 출력하기 (0) | 2024.03.18 |
---|---|
Lv.0 swift 자릿수 더하기 (0) | 2024.03.18 |
Lv.0 swift 세균 증식 (0) | 2024.03.17 |
Lv.0 swift 짝수의 합 (0) | 2024.03.17 |
Lv.0 Swift 각도기 (0) | 2024.03.17 |
최근에 올라온 글