// 문제 초기화된 상태
class Solution {
fun solution(angle: Int): Int {
var answer: Int = 0
return answer
}
}
// 풀이1
class Solution {
fun solution(angle: Int): Int {
var answer: Int = 0
if (0 < angle && angle < 90) {
answer = 1
} else if (angle == 90) {
answer = 2
} else if (90 < angle && angle < 180) {
answer = 3
} else {
answer = 4
}
return answer
}
}
// 풀이2
class Solution {
fun solution(angle: Int): Int {
if(0 < angle && angle < 90) {
return 1
} else if(angle == 90) {
return 2
} else if(90 < angle && angle < 180) {
return 3
} else {
return 4
}
}
}
// 풀이3
class Solution {
fun solution(angle: Int): Int {
if(angle < 90) {
return 1
} else if(angle == 90) {
return 2
} else if(angle < 180) {
return 3
} else {
return 4
}
}
}
// 풀이4
class Solution {
fun solution(angle: Int): Int {
var answer: Int = 0
when(angle) {
in 0..89 -> answer = 1
90 -> answer = 2
in 91..179 -> answer = 3
180 -> answer = 4
}
return answer
}
}
// 풀이4-1 (오류남)
class Solution {
fun solution(angle: Int): Int {
var answer: Int = 0
when(angle: Int) {
in 0..89 -> answer = 1
90 -> answer = 2
in 91..179 -> answer = 3
180 -> answer = 4
}
return answer
}
}
// ❓ 왜 풀이4에서 when(angle)의 angle 뒤에 :Int만 붙였는데 오류가 나나요?
--> 그냥 when절의 문법이니 다음부터 안 쓰면 된다.
// 풀이5
class Solution {
fun solution(angle: Int) = when(angle) {
in 0..89 -> 1
90 -> 2
in 91..179 -> 3
else -> 4
}
}
// ❓ 위 풀이들에서 fun의 반환형을 생략하면 오류가 나고, 이 풀이에서는 생략해도 오류가 안 나는데 무슨 차이인가요?
// 풀이6
class Solution {
fun solution(angle: Int) = when {
angle in 0 .. 89 -> 1
angle == 90 -> 2
angle in 91 .. 179 -> 3
else -> 4
}
}
// 풀이7
class Solution {
fun solution(angle: Int) = when {
(angle in 0..89) -> 1
(angle == 90) -> 2
(angle in 91..179) -> 3
else -> 4
}
}
아직 ()를 언제 쓰는지, 자료형을 언제 써야하는지, 언제 생략해도 되는지도 헷갈린다..
fun solution(angle: Int): Int {
// 이 부분에서 angle은 변수명인가요?
--> 변수x 파라미터!