- 알고리즘/백준
백준 1476 날짜계산 코틀린
더모어더베러
2023. 11. 13. 21:22
문제
https://www.acmicpc.net/problem/1476
1476번: 날짜 계산
준규가 사는 나라는 우리가 사용하는 연도와 다른 방식을 이용한다. 준규가 사는 나라에서는 수 3개를 이용해서 연도를 나타낸다. 각각의 수는 지구, 태양, 그리고 달을 나타낸다. 지구를 나타
www.acmicpc.net
풀이
저는 나머지 연산%을 통해 알고리즘을 구현하려고 하였지만 최대 범위값이 0으로 표현 되는 문제가 있어 코드가 복잡해지는 부작용이 있어 값을 하나씩 증가 하고 범위를 넘어가면 1로 초기화 해주는 방법으로 다시 풀었습니다.
import java.io.BufferedReader
import java.io.BufferedWriter
import java.io.InputStreamReader
import java.io.OutputStreamWriter
fun main(args: Array<String>) {
val br = BufferedReader(InputStreamReader(System.`in`))
val bw = BufferedWriter(OutputStreamWriter(System.out))
// 1 <= e <= 15
// 1 <= s <= 28
// 1 <= m <= 19
var (e,s,m) = br.readLine().split(" ").map { it.toInt() }
var result = 0
var flagCheck = true
var eC = 0
var sC = 0
var mC = 0
while (flagCheck) {
result++
eC++
sC++
mC++
if (eC == 16) eC = 1
if (sC == 29) sC = 1
if (mC == 20) mC = 1
if (e==eC && s==sC && m==mC) flagCheck = false
}
bw.write(result.toString())
bw.flush()
bw.close()
}