1328번 - 고층 빌딩
매번 1의 박스를 놓는다고 생각하는거랑 비슷하게 생각했습니다.
매번 놓는 박스를 가장 작은 높이의 박스라고 생각하고?
박스를 놓기 때문에
맨왼쪽에 놓는경우는 l + 1이 될것이고.
맨오른쪽에 놓는경우는 r + 1이 될것입니다
그 외의 것은 l과 r이 값이 변하지 않고
if (n >= 2) { ret = (ll)f(n + 1, l, r) * (n - 1); ret %= MOD; }
라고생각했습니다.
n-1인 이유는 박스가 n개가 있다고 생각했을떄
그 사이에 작은 박스를 넣을 경우가 n -1 개라고 생각했기 때문입니당.
탈출조건은
if (n == N) { if (l == L && r == R) return 1; else return 0; }
해당 높이에서 인풋받은 것 값과 같을 떄 리턴 1 그외는 리턴 0을 하게 했습니다
왜 안되는 걸까요? 어디서 오류를 범하는 것일까요?
댓글을 작성하려면 로그인해야 합니다.
kioio5 6년 전
매번 1의 박스를 놓는다고 생각하는거랑 비슷하게 생각했습니다.
매번 놓는 박스를 가장 작은 높이의 박스라고 생각하고?
박스를 놓기 때문에
맨왼쪽에 놓는경우는 l + 1이 될것이고.
맨오른쪽에 놓는경우는 r + 1이 될것입니다
그 외의 것은 l과 r이 값이 변하지 않고
if (n >= 2) {
ret = (ll)f(n + 1, l, r) * (n - 1);
ret %= MOD;
}
라고생각했습니다.
n-1인 이유는 박스가 n개가 있다고 생각했을떄
그 사이에 작은 박스를 넣을 경우가 n -1 개라고 생각했기 때문입니당.
탈출조건은
if (n == N) {
if (l == L && r == R) return 1;
else return 0;
}
해당 높이에서 인풋받은 것 값과 같을 떄 리턴 1 그외는 리턴 0을 하게 했습니다
왜 안되는 걸까요? 어디서 오류를 범하는 것일까요?