2133번 - 타일 채우기
2133 타일채우기 문제에서
2라인 -> d = [0] * (n+2)
6라인 -> for i in range(4, n+2, 2):
로 정하면 정답입니다.
그러나, 저는
2라인 -> d = [0] * (n+1)
6라인 -> for i in range(4, n+1, 2):
해도 정답이라 생각했지만 IndexError가 나왔습니다.
혹시 제가 어떤 개념을 놓치고 있는 건가 해서 왜 둘이 다르게 출력되었는지 질문드립니다!
** 참고로, n+2 부분을 31로 해도 정답이더라구요. 한 끝 차이 같은데 이유를 모르겠습니다.
그냥 지나가는 사람인데,,
제가 생각했을 때는 n이 홀수로 주어졌을 때, for문에서 2칸 씩 돌리다보면 인덱스가 안맞을꺼 같습니다!
2번째 줄에서 d = [0] * (n+1)로 두면, 코드 3번째 줄의 d[2] = 3에서 IndexError가 나옵니다.
n=1일 때는 d[2]가 정의되지 않고, d[1]까지의 값만 있기 때문입니다.
3번째 줄을 다음과 같이 바꾸시길 권장해 드립니다.
if n>1:
d[2] = 3
댓글을 작성하려면 로그인해야 합니다.
oh12sung 3년 전
2133 타일채우기 문제에서
2라인 -> d = [0] * (n+2)
6라인 -> for i in range(4, n+2, 2):
로 정하면 정답입니다.
그러나, 저는
2라인 -> d = [0] * (n+1)
6라인 -> for i in range(4, n+1, 2):
해도 정답이라 생각했지만 IndexError가 나왔습니다.
혹시 제가 어떤 개념을 놓치고 있는 건가 해서 왜 둘이 다르게 출력되었는지 질문드립니다!
** 참고로, n+2 부분을 31로 해도 정답이더라구요. 한 끝 차이 같은데 이유를 모르겠습니다.