알고리즘 문제
개인정보 수집 유효기간
프로그래머스에서 해당 문제를 풀다가 테스트 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;
}
}