-
[백준] 10871번 : X보다 작은 수 - 코틀린(Kotlin)알고리즘/백준 2022. 10. 20. 00:01
https://www.acmicpc.net/problem/10871
문제 해석
수열 A를 이루는 정수 N개가 주어집니다.
이때 중복을 허용하는지는 문제에서 나와있지 않은 것 같습니다.
수열 A에서 X보다 작은 수를 " "로 구분하여 출력하면 됩니다.
문제 풀이 전 설계
MutableList를 하나 선언하고 그 List에 X보다 작은 수를 스트림 filter를 활용하여 새로운 리스트로 만들어내고 출력해보고자 합니다.
이때 출력을 위해 Kotlin에 Java의 StringBuilder와 유사한 것이 있는지 찾아보려고 합니다.
코드
import java.io.IOException fun main() { //10 5 val input = readLine() ?: throw IOException() val splitInput = input.split(" ") val n = splitInput[0].toInt() val x = splitInput[1].toInt() //1 10 4 9 2 3 8 5 7 6 val numbers = readLine() ?: throw IOException() val splitNumbers = numbers.split(" ") val result = splitNumbers .map{ it.toInt() } .filter { it < x } .toList() .joinToString(" ") println(result) }
splitNumbers인 List를 int로 변환하고 x보다 작은 값들을 filtering 한 뒤 List로 변환합니다.
이후 jointToString을 활용하여 공백으로 분리지어 String으로 만들어준 후 출력합니다.
다른분들의 코드를 통해 배운 점
- 굳이 List를 사용하지 않고 바로 StringBuilder에 쌓아서 출력하는 방식도 있습니다.
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 10172번 : 개 - 코틀린(Kotlin) (0) 2022.10.23 [백준] 10809번 : 알파벳 찾기 - 코틀린(kotlin) (0) 2022.10.21 [백준] 11286번 : 절댓값 힙 - 자바(JAVA) (0) 2022.09.05 [백준] 1107번 : 리모컨 - 자바(JAVA) (0) 2022.09.03 [백준] 1676번 : 팩토리얼0의개수 - 자바(JAVA) (0) 2022.09.02