반응형

백준 1476번 문제입니다. (solved.ac) 기준 실버 5 문제입니다.

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

 

1476번: 날짜 계산

준규가 사는 나라는 우리가 사용하는 연도와 다른 방식을 이용한다. 준규가 사는 나라에서는 수 3개를 이용해서 연도를 나타낸다. 각각의 수는 지구, 태양, 그리고 달을 나타낸다. 지구를 나타

www.acmicpc.net

문제

문제 접근

경우의 수가 15 * 28 * 19로 크지 않기 때문에 완전탐색으로 모든 경우를 확인하도록 구현하였습니다.

e, s, m의 최대 범위가 각각 15, 28, 19로 세 수가 모두 서로소이기 때문에 주기가 15 * 28 * 19 이고 따라서 존재할 수 있는 순서쌍의 개수가 15 * 28 * 19 == 경우의 수 입니다.

 

입력받은 e, s, m 과 비교하여 비교할 myE, myS, myM을 만들고 입력 받은 e, s, m 과 비교하여 같아질 때 까지 1씩 증가하도록 구현하였습니다. 

정답 코드

fun main() {

    val (e, s, m) = readln().split(" ").map { it.toInt() }
    
    var myE = 1
    var myS = 1
    var myM = 1
    var year = 1

    while (e != myE || s != myS || m != myM) {
        myE++
        if (myE > 15) myE = 1
        myS++
        if (myS > 28) myS = 1
        myM++
        if (myM > 19) myM = 1
        year++
    }
    println(year)
}

 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기