TIL #75

loci·2024년 7월 14일
0

TIL

목록 보기
72/103


백준 1924번
2007년

요즘 백준문제를 시작해보려고 계속 출력문제부터 풀어보고 있다.

2007년 1월 1일이 월요일일 때 입력되는 날짜의 요일을 구해야한다.

해당 날짜까지의 총 일수를 구하고 7을 나눈 나머지를 배열의 인덱스로 지정해주었다.


나의코드

fun main(){
    val (a,b) = readLine()!!.split(" ").map{it.toInt()}
    val arr = listOf<String>("SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT")
    var day = b
    
    for(i in 1..a-1){
        when(i){
            1,3,5,7,8,10 -> day += 31
            4,6,9,11 -> day += 30
            2 -> day += 28
        }
    }

    println("${arr[day % 7]}")
    
}

처음에 계속 답이 이상하게 나왔었는데 알고보니 when의 i를 a로 지정해서 이상한 답으로 나왔었다. a를 i로 바꾸니 해결됬다.


다른사람 코드

import java.util.*
fun main()= with(Scanner(System.`in`)) {
    var x = nextInt()
    var y = nextInt()
    when(x){
        2 -> y+=31
        3 -> y+=31+28
        4 -> y+=31+31+28
        5 -> y+=30+31+31+28
        6 -> y+=31+30+31+31+28
        7 -> y+=30+31+30+31+31+28
        8 -> y+=31+30+31+30+31+31+28
        9 -> y+=31+31+30+31+30+31+31+28
        10 -> y+=30+31+31+30+31+30+31+31+28
        11 -> y+=31+30+31+31+30+31+30+31+31+28
        12 -> y+=30+31+30+31+31+30+31+30+31+31+28
    }

    when(y%7){
        1 -> print("MON")
        2 -> print("TUE")
        3 -> print("WED")
        4 -> print("THU")
        5 -> print("FRI")
        6 -> print("SAT")
        0 -> print("SUN")
    }
}


백준 2741번
N 찍기

1부턴 n까지 출력시키기

fun main(){
    val input = readLine()!!.toInt()
    for(i in 1..input){
        println(i.toString())
    }
}


백준 2742번
기찍 N

문제이름이 이상하다 했더니 이전문제 N찍기에서 거꾸로 번호를 출력하는 문제라서 문제이름을 거꾸로 기찍 N으로 만든거였다;;

fun main(){
    val input = readLine()!!.toInt()
    for(i in input downTo 1){
        println(i.toString())
    }
}


백준 2739번
구구단
N의 9단을 출력하는 문제

fun main(){
    val input = readLine()!!.toInt()
    for(i in 1..9){
        println("${input} * ${i} = ${(input*i).toString()}")
    }
}
profile
편리한 개발자

0개의 댓글