문제정리)
1900년부터 1900 + n - 1년 12월 31일까지의 매월 13일의 요일 분포를 {토,일,월,화,수,목,금}으로 출력하는 문제이다.
1900년 1월 1일은 월요일이다.
윤년을 고려해서 답을 구해야한다.
문제풀이)
처음에는 어떤식으로 접근해야 하나 고민했다.
맨처음은 년, 월, 일을 다차원배열로 표현해야 하나? 생각했는데 13일의 요일분포를 구하는데는 적절하지 않는 방법이라고 생각.
그 다음은 전체일수를 하나의 배열로 표현하여 각 날짜들을 count하는 방법으로 생각했다.
이 방법이 옳은 방법이라고 생각했다.
년 -> 월 -> 일 을 1차원 배열의 날짜로 표현하기 위해서는
3중 for문으로 표현하되 각 월과 일의 조건을 몇 개 넣어주면 되겠다고 생각했다.
그리고 결과적으로 구해야하는 요일 분포를 현재까지의 결과 일수에서 % 7 하면
0은 월요일, 1은 화요일, 2는 수요일, 3은 목요일, 4는 금요일, 5는 토요일, 6은 일요일로
표현가능하여 요일분포배열에 담아서 구현했다.
윤년을 구하는 방법은 인터넷을 통해서 정확하게 이해했다.
4로 나누어지는 년도, 100으로 나누어지는 곳은 윤년 아님, 그러나 400으로 나누어지면 윤년
이 조건을 if문으로 적당히 걸어주어서 윤년정보를 적용시켰다.
'알고리즘문제풀이' 카테고리의 다른 글
더블릿_dna결합 (0) | 2015.04.15 |
---|---|
더블릿_팔씨름운동회 (0) | 2015.04.14 |
더블릿_어망투망 (0) | 2015.04.14 |
더블릿_종이 자르기(소트) (0) | 2015.04.14 |
더블릿_스위치상태 (0) | 2015.04.14 |