Android 앱개발 공부/TIL(Today I Learned)

[Android] TIL 33일차

bunny code 2024. 7. 10. 12:02

28. 엄마의 건강검진 결과, 대사증후군 레벨은 어디에 해당될까요?

 

* 조건

1. (성별 : 여성, 허리둘레 : 80, 수축기혈압 : 142, 이완기혈압 : 83, 혈당 : 110, 중성지방 : 140 , 고밀도지단백콜레스테롤 : 52)
2. 대사증후군 레벨 : 위험인자 3개 이상이면 대사증후군, 1~2개 주의군, 미해당 정상군입니다. 위험인자는 5가지 입니다. 
3. 허리둘레 : 남성 90이상,여성 85이상, 혈압 : 수축기혈압 130이상, 이완기혈압 90이상
4. 혈당 : 공복혈당 100이상, 중성지방 : 150이상,고밀도 지단백 콜레스테롤 : 남성 40미만, 여성 50미만
* 혈압은 둘 중 하나만 수치 이상이어도 체크함

 

fun main(){
    print("성별 : ")
    val gender = readln()
    print("허리둘레 : ")
    val waist = readln().toInt()
    print("수축기혈압 : ")
    val num1 = readln().toInt()
    print("이완기혈압 : ")
    val num2 = readln().toInt()
    print("혈당 : ")
    val num3 = readln().toInt()
    print("중성지방 : ")
    val num4 = readln().toInt()
    print("고밀도지단백콜레스테롤 : ")
    val num5 = readln().toInt()


    var level = 0

    when(gender){
        "남성" -> {
            if (waist>=90)
                level++
            if (num1>=130||num2>=90)
                level++
            if (num3>=100)
                level++
            if (num4>=150)
                level++
            if (num5<50)
                level++
        }

        "여성" -> {
            if (waist>=85)
                level++
            if (num1>=130||num2>=90)
                level++
            if (num3>=100)
                level++
            if (num4>=150)
                level++
            if (num5<40)
                level++
        }
    }

    when{
        level>=3 -> print("총 ${level}가지가 수치 이상이네요. 대사증후군입니다.")
        level==1 || level==2 -> print("총 ${level}가지가 수치 이상이네요. 주의군입니다.")
        else -> print("미해당, 정상군입니다.")
    }
}

 

 

29. 영어의 개수를 직접 세기 귀찮았던 조반씨는 영어를 입력하면 입력받은 영어 문자의 개수를 세어주는 코드를 짜기로 결심했습니다. 결심까지는 좋았지만 인생이 그렇듯 항상 제 마음대로 코드가 써지지 않습니다. 조반씨를 도와서 코드를 함께 해결해주세요! (입력은 영어, 숫자만 가능) 입력 33fw4dd2, 출력:4

fun main(){
    print("문자를 입력해주세요 : ")
    val input = readln()
    var count = 0
    var answer = ""

        for(char in input){
            if(char in 'A'..'Z'||char in 'a'..'z') {
                answer += char
                count++
            }
        }
    print(count)
}

 

30. 이중씨와 조건씨는 오랜 친구입니다. 둘의 연인과 함께 더블데이트를 가자는 의견이 나와 날짜를 확인하는 중 머리가 아파와서 코딩에게 조금의 도움을 받기로 합니다. 

 

* 조건

1. 이중씨의 연인은 3의 배수인 날짜에만 시간이 비어요. 
2. 조건씨는 20일 이후로만 시간이 비어요.
//1. filter 이용해서 작성
fun main(){
var answer = 1..31

var result = answer.filter { it%3==0 && it in 20..31 }

print(result)
}

//2. for, if문 이용해서 작성
fun main(){
var answer = 0

    for(i in 1..31){
        if(i%3==0 && i in 20..31) {
            answer = i
            println("8월에 데이트 가능한 날짜는 ${answer}일입니다.")
        }
    }
}

 

 

31. 나이를 입력하면 10대이하, 10대, 20대, 30대, 40대, 그이상으로 분류해 코멘트가 출력되도록 해주세요.

fun main(){
    print("나이를 입력해주세요 : ")
    val age = readln().toInt()

    when{
        age<10 -> print("10대 미만입니다.")
        age in 10..19 -> print("10대입니다.")
        age in 20..29 -> print("20대입니다.")
        age in 30..39 -> print("30대입니다.")
        age in 40..49 -> print("40대입니다.")
        else -> print("50대 이상입니다.")
    }
}

 

 

32. 1부터10사이의 홀수만 곱하는 코드를 만들어주세요 1*3*5*….. =945

fun main(){
    var answer = 1
    for(i in 1..10){
        if(i%2==1)
            answer *= i
    }
    print("1부터 10 사이에 있는 홀수의 곱은 : ${answer}")
}

 

33. "진상 손님이 방문하셨어요!!! 오늘 제가 만들어야되는 메뉴를 알려주세요!" 우리 진상손님은요 이 메뉴만 먹어요. (1) 진상손님은 일주일 내내 방문하는데 항상 "따뜻한 아이스 아메리카노"를 시키지만 토요일에는 "달지않은 연유딸기라떼", 일요일에는 "아이스핫초코"를 시켜요 (2) 요일을 입력하면 자동으로 메뉴가 출력되도록 해주세요.

fun main(){
    print("요일을 입력해주세요 : ")
    val day = readln()

    val list = listOf("따뜻한 아이스 아메리카노", "달지않은 연유딸기라떼", "아이스핫초코")

    when(day){
        "월" -> print("${list[0]} 주문 완료했습니다.")
        "화" -> print("${list[0]} 주문 완료했습니다.")
        "수" -> print("${list[0]} 주문 완료했습니다.")
        "목" -> print("${list[0]} 주문 완료했습니다.")
        "금" -> print("${list[0]} 주문 완료했습니다.")
        "토" -> print("${list[1]} 주문 완료했습니다.")
        "일" -> print("${list[2]} 주문 완료했습니다.")
    }
}

 

 

34. [Game] 슬라임 몬스터를 처치한 후 게임에서 승리하세요!

 

* 조건

1. 게임 캐릭터를 랜덤으로 뽑을 수 있고, 총 3개의 캐릭터가 존재함.각 캐릭터는 공격력과 체력 스킬을 가짐. 사용자가 "y"키를 입력하면 3개의 캐릭터중 랜덤으로 1개의 캐릭터를 뽑을 수 있음. 전사, 마법사, 성직자 중에 1캐릭터를 랜덤으로 뽑는다. 
2. 캐릭터가 뽑히면 "축하합니다! OO캐릭터가 뽑혔습니다." 라는 메세지가 출력됨. 
3. 몬스터와 전투를 진행. 게임 캐릭터가 "a"키로 공격이 가능하고, 몬스터나 캐릭터의 체력이 0이하가 될 때까지 공격이 가능함.
4. 사용자가 "a"키를 입력하면, 전투가 발생함.
5. 캐릭터의 공격력은 0~5의 랜덤한 수, 체력은 80
6. 몬스터의 공격력은 0~3의 랜덤한 수, 체력은 10
7. a키를 입력할 때마다 전투가 반복되어야함. 몬스터나 캐릭터의 체력이 0이하가 될 경우 반복문 종료 전투는 캐릭터가 공격을 먼저 진행하고, 몬스터가 캐릭터에게 공격을 함. 
8. 공격시 캐릭터는 몬스터의 HP를 감소시키고, 몬스터는 캐릭터의 HP를 감소시킴 
9. 캐릭터가 공격할 때마다 "캐릭터가 n의 데미지를 입혔습니다."라는 메세지 출력.
10. 캐릭터가 공격할 때마다 "몬스터의 체력이 n이 되었습니다.."라는 메세지 출력.
11. 몬스터가 공격할 때마다 "몬스터가 n의 데미지를 입혔습니다."라는 메세지 출력.
12. 몬스터가 공격할 때마다 "슬라임이 공격하여 당신의 체력이 n이 되었습니다."라는 메세지 출력.
13. 몬스터의 체력이 0이하가 되면 반복문이 종료되고, "몬스터를 처치하였습니다."라는 메세지를 출력
14. 캐릭터의 체력이 0이하가 되면 반복문이 종료되고, "당신은 사망하였습니다."라는 메세지를 출력

 

fun main() {
    print("소문자 y를 눌러 캐릭터를 선택해주세요 : ")
    val sel = readln()

    if(sel == "y"){
        var random = Random.nextInt(1,4)
        println("캐릭터 선택은 랜덤입니다. 숫자 ${random}이 나왔네요")
        var character = 80
        var monster = 10


        when(random){
            1 -> println("축하합니다. 전사가 뽑혔습니다.")
            2 -> println("축하합니다. 마법사가 뽑혔습니다.")
            3 -> println("축하합니다. 성직자가 뽑혔습니다.")
        }

        while(true){
            var chr_attack = Random.nextInt(0,6)
            var mon_attack = Random.nextInt(0,4)

            print("a를 입력하면 공격합니다. : ")
            val attack = readln()

            if(attack=="a") {
                monster -= chr_attack
                println("캐릭터가 몬스터에게 ${chr_attack}의 데미지를 입혔습니다.")
                println("몬스터의 체력은 ${monster}이 되었습니다.")
                character -= mon_attack
                println("몬스터가 ${mon_attack}의 데미지를 입혔습니다.")
                println("슬라임이 공격하여 당신의 체력이 ${character}가 되었습니다.")
            }
            else {
                println("공격키를 입력하지 않아서 몬스터에게 데미지를 가하지 못했습니다.")
                character -= mon_attack
                println("몬스터가 ${mon_attack}의 데미지를 입혔습니다.")
                println("슬라임이 공격하여 당신의 체력이 ${character}가 되었습니다.")
            }

            when{
                monster<=0 -> {
                    print("몬스터를 처치하였습니다.")
                    break
                }
                character<=0 -> {
                    print("당신은 사망하였습니다.")
                    break
                }
            }
        }
    }
    else
        print("다른 키를 입력하셨습니다.")
}

 

 

35. 2024년 기준 출생년도를 입력받아 20세 이상이면 “성인”, 20세 미만이면 “미성년자”를 출력하게 해주세요

fun main(){
    print("출생년도를 입력해주세요. (예 : 2000) : ")
    var num = readln().toInt()
    var year = LocalDate.now().year

    if(year-num >= 19)
        print("성인입니다.")
    else
        print("미성년자입니다.")
}

 

36. 3개의 정수를 입력받아 가장 작은 숫자를 찾아 출력하도록 해주세요

fun main(){
    print("첫 번째 정수를 입력해주세요 : ")
    var num1 = readln().toInt()
    print("두 번째 정수를 입력해주세요 : ")
    var num2 = readln().toInt()
    print("세 번째 정수를 입력해주세요 : ")
    var num3 = readln().toInt()

    if(num1 <= num2 && num1 <= num3)
        print("가장 작은 수는 ${num1}")
    else if (num2 <= num1 && num2 <= num3)
        print("가장 작은 수는 ${num2}")
    else if(num3 <= num1 && num3 <= num2)
        print("가장 작은 수는 ${num3}")
}

 

37. 정수를 입력하면 그 정수에 *1~*9까지의 수가 모두 출력되게 해주세요

fun main(){
    print("정수를 입력해주세요 : ")
    var num1 = readln().toInt()
    var i = 1..9
    var map = i.map { it*num1 }
    print(map)
}

 

38. 정수를 입력받아 그 수를 거꾸로 출력하게 해주세요

fun main(){
    print("정수를 입력해주세요 : ")
    val num1 = readln().toInt()
    var answer = num1
    var result = ""

    while (answer>=1){
        result += (answer%10).toString()
        answer /= 10
    }
    print(result.toInt())
}

 

 

39.  입력받은 수가 짝수인지 홀수인지 확인후 짝수이면 제곱하여 출력하고 홀수라면 제곱하여 2로 나눈 값을 출력하게 해주세요

fun main() {
    print("숫자를 입력하세요 : ")
    val num = readln().toInt()
    if(num%2==0)
        print("${num*num}")
    else {
        var answer = (num.toDouble() * num.toDouble()) / 2
        print("${answer}")
    }
}

'Android 앱개발 공부 > TIL(Today I Learned)' 카테고리의 다른 글

[Android] TIL 35일차  (0) 2024.07.12
[Android] TIL 34일차  (0) 2024.07.11
[Android] TIL 32일차 - 2  (0) 2024.07.09
[Android] TIL 32일차  (0) 2024.07.09
[Android] TIL 31일차  (0) 2024.07.08