백준 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()}")
}
}