https://www.acmicpc.net/problem/5648
난이도 : 실버 5
태그 : 정렬
설명
문제 자체는 쉬웠으나,
입력이 꽤 특이하여 애먹었던 문제였습니다.
처음엔 카운팅 변수를 하나 두고 체크했는데 왜인지 계속 오류가 나서,
BufferedReader를 사용해 null을 입력받을 때 까지 계속 입력받는 방법으로 구현했습니다.
(BufferedReader는 더 이상 입력받을게 없을 경우 null 반환)
소스코드
import java.util.StringTokenizer
fun main() = with(System.`in`.bufferedReader()) {
val list = ArrayList<String>()
var str = readLine()
while (str != null) {
val st = StringTokenizer(str)
while (st.hasMoreTokens()) list.add(st.nextToken())
str = readLine()
}
list.removeAt(0)
val sb = StringBuilder()
list.map { it.reversed().toLong() }.sorted().forEach { sb.append(it).append("\n") }
print(sb)
}
map 함수는 배열 혹은 리스트의 각 원소를 가공하여 반환합니다.
해당 코드에서는 각 원소를 revsersed(뒤집기) 하고 Long 형태로 변환해 반환하였고,
이를 그대로 sort하여 StringBuilder에 넣고 출력하였습니다.
'코딩테스트 > Kotlin' 카테고리의 다른 글
[백준 2563번] [Kotlin] 색종이 (0) | 2023.08.04 |
---|---|
[백준 16985번] [Kotlin] Maaaaaaaaaze (0) | 2023.07.30 |
[백준 1904번] [Kotlin] 01타일 (0) | 2023.07.15 |
[백준 11967번] [Kotlin] 불켜기 (0) | 2023.07.15 |
[백준 15904번] [Kotlin] UCPC는 무엇의 약자일까? (0) | 2023.07.15 |