728x90
오늘도 기초 문법에 대해서 공부하는데, 다른 분들의 문제를 풀던 중 주사위 문제가 있었다
- 두 개의 주사위를 던져서 특정한 숫자의 조합을 출력하기
- 예시) 입력 : 10 / 출력 4+6 = 10
- 입력 값이 12를 넘어가면 예외처리
- 여러 조합 중 아무거나 하나만 출력
for문 두 개를 이용한 방법의 활용
fun main() {
val num = readLine()!!.toInt()
for (i in 1..6){
for (j in 1..6){
if(i+j==num){
println("${i} + ${j} = ${num}")
}
}
}
}
처음엔 단순 주사위 문제인 줄 알고 for문 두 개를 이용해서 특정 입력 값(num)을 출력시켰다
우선 하나의 경우의 수만 출력하는 걸 하고 예외처리를 하기 위해 for문 이곳저곳에 break를 입력했는데 해결되지 않았다
하나만 출력하는게 쉽게 되지 않아서 when문도 써보고 했는 데 성공하지 못했다
그래서 튜터님께 여쭤봐서 while문을 활용해 보라는 말씀을 듣고,
특정 조건에서만 반복하는 while문에 조건이 맞았을 때 break나 return 하기로 했다
while문을 활용한 방법
fun main() {
val num = readLine()!!.toInt()
val range = (1..6)
while (num < 13) {
val dice1 = range.random()
val dice2 = range.random()
while (num == dice1 + dice2) {
return println("${dice1} + ${dice2} = ${num}")
}
// 입력 값이 1일 때도 예외
if (num == 1){
return println("2 ~ 12 숫자를 입력해 주세요")
}
}
// 입력값이 12 초과일 때
if (num > 12){
println("2 ~ 12 숫자를 입력해 주세요")
}
}
결과
이 방법으로 문제를 해결하긴 했으나, 아무리 봐도 그냥 조건문 난사한 것 같긴하다문제 해설이나, 다른 분들의 풀이가 나올 때 까지 다른 문제들도 풀어보면서 더 공부해야 할 것 같다
728x90
'코틀린(Kotlin) > TIL' 카테고리의 다른 글
[코틀린(Kotlin)] 선택 정렬 알고리즘 연습 (1) | 2023.12.22 |
---|---|
[코틀린(Kotlin)] 객체 지향 프로그래밍 (1) | 2023.12.20 |
[코틀린(Kotlin)] 기초문법 조건문/반복문 연습 (0) | 2023.12.18 |
[코틀린(Kotlin)] 액티비티(Activity)와 인텐트(Intent) (0) | 2023.12.14 |
[코틀린(Kotlin)] 안드로이드 UI 레이아웃(Layout (0) | 2023.12.13 |