16432번 - 떡장수와 호랑이
제 로직은 간단합니다.
선택되지 못하는 경우는
i 번째 날 떡이 1 2 있었고,
i + 1번째 날 떡이 1,2 있었고,
i + 2번째 날 떡이 1이 있었다면,
ans[i] = 2, ans[i + 1] = 1, ans[i + 2] = X 의 경우 -1이 출력되야합니다.
결론은 떡이 1개가 있는 날이 있을 때, 문제가 생길 수 있을거라는 결론을 내렸고,
i = N ~ 1 일때까지 역순으로 반복문을 돌려서 i 번째 날에 떡이 1개가 있으면 그 전 날인 i - 1째 날에 똑같은 떡이 있는지 보고,
있으면 없는 것으로 처리를 해주었습니다.(num[i - 1]--, chk[i - 1][i번째 있던 떡] = 0)
그래서 num[i] = 0이 되는 날이 있으면 ed = 1로 만들어주었습니다.
예제도 맞고.. 논리도 얼추 맞는거같은데 왜 틀렸을까요...ㅠㅠㅠㅠㅠ
댓글을 작성하려면 로그인해야 합니다.
hbk388 5년 전
제 로직은 간단합니다.
선택되지 못하는 경우는
i 번째 날 떡이 1 2 있었고,
i + 1번째 날 떡이 1,2 있었고,
i + 2번째 날 떡이 1이 있었다면,
ans[i] = 2, ans[i + 1] = 1, ans[i + 2] = X 의 경우 -1이 출력되야합니다.
결론은 떡이 1개가 있는 날이 있을 때, 문제가 생길 수 있을거라는 결론을 내렸고,
i = N ~ 1 일때까지 역순으로 반복문을 돌려서 i 번째 날에 떡이 1개가 있으면 그 전 날인 i - 1째 날에 똑같은 떡이 있는지 보고,
있으면 없는 것으로 처리를 해주었습니다.(num[i - 1]--, chk[i - 1][i번째 있던 떡] = 0)
그래서 num[i] = 0이 되는 날이 있으면 ed = 1로 만들어주었습니다.
예제도 맞고.. 논리도 얼추 맞는거같은데 왜 틀렸을까요...ㅠㅠㅠㅠㅠ