[TIL] 2023.11.26

Gahyeon Lee·2023년 11월 26일
0

TIL

목록 보기
10/47
post-thumbnail

🐱 Algorithm 문제 '각도기'

🐱 풀이

// 문제 초기화된 상태
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 파라미터!
profile
코린이 강아지 집사🐶

0개의 댓글