문제 링크
https://www.acmicpc.net/problem/18108
18108번: 1998년생인 내가 태국에서는 2541년생?!
ICPC Bangkok Regional에 참가하기 위해 수완나품 국제공항에 막 도착한 팀 레드시프트 일행은 눈을 믿을 수 없었다. 공항의 대형 스크린에 올해가 2562년이라고 적혀 있던 것이었다. 불교 국가인 태국
www.acmicpc.net
백준 18108번 1998년생인 내가 태국에서는 2541년생?! (Kotlin)
문제
ICPC Bangkok Regional에 참가하기 위해 수완나품 국제공항에 막 도착한 팀 레드시프트 일행은 눈을 믿을 수 없었다. 공항의 대형 스크린에 올해가 2562년이라고 적혀 있던 것이었다.
불교 국가인 태국은 불멸기원(佛滅紀元), 즉 석가모니가 열반한 해를 기준으로 연도를 세는 불기를 사용한다. 반면, 우리나라는 서기 연도를 사용하고 있다. 불기 연도가 주어질 때 이를 서기 연도로 바꿔 주는 프로그램을 작성하시오.
입력
서기 연도를 알아보고 싶은 불기 연도 y가 주어진다. (1000 ≤ y ≤ 3000)
출력
불기 연도를 서기 연도로 변환한 결과를 출력한다.
예제 입력 1
2541
예제 출력 1
1998
풀이
코드1
메모리 12140KB
시간 88ms
코드 길이 186B
import java.io.BufferedReader
import java.io.InputStreamReader
fun main() = with(BufferedReader(InputStreamReader(System.`in`))) {
var a = readLine().toInt()
print("${a-543}")
}
코드2
메모리 12360KB
시간 88ms
코드 길이 57B
fun main() = print("${(readLine()?.toInt() ?: 0) - 543}")
내 풀이
원래 내가 푼 코드는 코드1로 BufferedReader를 이용해 숫자를 입력받고
입력받은 숫자에서 543을 빼서 출력해주었다
문제를 다 풀고 다른 사람들의 코드를 보다가 코드2를 발견했다
입력받은 숫자가 null이 아니면 543을 빼서 출력하고 입력받은 숫자가 null이면 0을 출력하는 코드
코드 길이는 엄청 짧긴하지만 시간은 같고 메모리는 더 많이 사용된다
'백준' 카테고리의 다른 글
[백준] [코틀린 Kotlin] 2588번_곱셈 (0) | 2023.08.24 |
---|---|
[백준] [코틀린 Kotlin] 10430번_나머지 (0) | 2023.08.24 |
[백준] [코틀린 Kotlin] 10926번_??! (0) | 2023.08.23 |
[백준] [코틀린 Kotlin] 10869번_사칙연산 (0) | 2023.08.22 |
[백준] [코틀린 Kotlin] 1008번_A/B (0) | 2023.08.22 |