본문 바로가기

TIL

23.09.06

알고리즘 문제

개인정보 수집 유효기간

프로그래머스에서 해당 문제를 풀다가 테스트 17번만 통과하지 못하는 경우가 생겼다.

구글에 검색해서 테스트 17번의 반례를 찾았다.

today terms privacies result
"2020.12.17" ["A 12"] ["2010.01.01 A", "2019.12.17 A"] [1, 2]

테스트 케이스에 넣고 코드를 실행시켜 보니까 [1] 이라는 결과가 나왔다.

만료기간의 월이 12의 배수일 때 12로 나눠져서 0월이 된다는 사실을 알아냈다

아래가 테스트 17번만 실패한 코드의 만료기간을 구하는 부분이다.

    public void AddMonth(int month)
    {
        Month += month;

        if(Month > 12)
        {
            Year += Month / 12;
            Month -= Month % 12;
        }
    }

그래서 해당 코드를 이렇게 수정했다.

    public void AddMonth(int month)
    {
        Month += month;

        while(Month > 12)
        {
            Year++;
            Month -= 12;
        }
    }

'TIL' 카테고리의 다른 글

23.09.13  (0) 2023.09.14
23.09.12  (0) 2023.09.14
23.09.11  (0) 2023.09.14
23.09.07  (0) 2023.09.07
23.09.05  (0) 2023.09.05