본문 바로가기
스터디(beakjoon)

Kotlin] 백준 5597번 문제 풀이

by 김마리님 2023. 4. 25.

https://www.acmicpc.net/problem/5597

 

5597번: 과제 안 내신 분..?

X대학 M교수님은 프로그래밍 수업을 맡고 있다. 교실엔 학생이 30명이 있는데, 학생 명부엔 각 학생별로 1번부터 30번까지 출석번호가 붙어 있다. 교수님이 내준 특별과제를 28명이 제출했는데,

www.acmicpc.net

 

 

풀이

더보기

배열에 번호대로 쭉 넣어놓은 후에

28명이 제출했다고 했으므로 for문을 돌면서 28번을 반복하며 입력받은 해당 번호를 0으로 교체한다(제출)

입력이 끝난 이후에 전체 배열에서 0이 아닌 값들만 필터링하여 추출하고, 이를 joinToString("\n")으로 String 값으로 변경 후 출력한다.

 

import java.io.BufferedReader
import java.io.BufferedWriter
import java.io.InputStreamReader
import java.io.OutputStreamWriter

fun main(args: Array<String>) {
    question5597()
}

fun question5597() {
    var reader = BufferedReader(InputStreamReader(System.`in`))
    var writer = BufferedWriter(OutputStreamWriter(System.out))

    var list = IntArray(30) { it + 1 }

    for(i in 1 .. 28) {
        var number = reader.readLine().toInt()

        list[number - 1] = 0
    }

    writer.write((list.filter { it != 0 }).joinToString("\n"))
    writer.flush()
}
반응형