bae1776   4년 전

배열을 만들 때 다른 분들과 배열 해석을 약간 달리해서 풀었습니다.

제가 잘못 했을 가능성도 높지만 

전 틀리지 않았다고 생각한 것이

왜냐하면 다른 코드와 제 코드에 각각 1~100을 입력한 값을 배열로 저장해 두 결과값의 차를 구하면

다른 코드 : https://www.acmicpc.net/board/view/37207 

(이 분 코드에서 배열값이 10억을 초과하는 문제를 해결하기 위해 나머지 연산 부분을 수정했습니다.)

아래와 같이 0 또는 10억의 배수로만 나오기 때문입니다.

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1000000000
1000000000
0
0
1000000000
1000000000
1000000000
1000000000
1000000000
0
0
1000000000
0
0
-1000000000
0
0
0
0
0
1000000000
1000000000
2000000000
1000000000
2000000000
0
0
0
0
0
1000000000
0
0
-1000000000
1000000000
0
2000000000
0
-1000000000
0
0
-1000000000
0
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
0
0
1000000000
0
0
0
0
0
0
0
1000000000
0
0
2000000000
0
1000000000
-1000000000
1000000000

저는 stairNumCount[i][j] 라는 배열을 만들어서 이렇게 해석했습니다.

stairNumCount[i][j] = (i번째 자리에 j라는 숫자가 들어가는 계단수의 갯수)

예를 들어 stairNumCount[5][2] 는, 다섯번째 자리에 2가 들어가는 계단 수(예시 : 23432, 23454, ...)의 갯수입니다.

stairNumCount의 값 테이블은 다음과 같습니다.

stairNumCount[1] : 1 1 1 1 1 1 1 1 1 1
stairNumCount[2] : 1 2 2 2 2 2 2 2 2 1
stairNumCount[3] : 2 3 4 4 4 4 4 4 3 2
stairNumCount[4] : 3 6 7 8 8 8 8 7 6 3
stairNumCount[5] : 6 10 14 15 16 16 15 14 10 6
stairNumCount[6] : 10 20 25 30 31 31 30 25 20 10
stairNumCount[7] : 20 35 50 56 61 61 56 50 35 20
stairNumCount[8] : 35 70 91 111 117 117 111 91 70 35
stairNumCount[9] : 70 126 181 208 228 228 208 181 126 70
stairNumCount[10] : 126 251 334 409 436 436 409 334 251 126

...

이때 예를 들어 input값으로 10을 준다면

결과 값은 stairNumCount[10][1] + stairNumCount[10][2] + ... + stairNumCount[10][9] 이 됩니다.

(stairNumCount[10][0]는 맨 앞에 0이 들어가는 수이므로 제외합니다)

제 코드에서 논리상 틀린 부분이 있으면 지적해 주시고

논리상 틀린 게 없다면 관리자 분들이 정답 처리 해주셨으면 좋겠습니다.

긴 글 읽어 주셔서 감사합니다.



Green55   4년 전

직접 테스트 해보셨다시피, 정답과 다른 결과가 나오면 당연히 틀리는게 맞습니다. 왜 정답처리가 되셔야 한다고 생각하시나요?

마지막에 result를 더할 때에도 %10억을 안해서 틀리신것 같습니다.

jh05013   4년 전

"틀렸습니다"는 구현 방법에 관계 없이 오로지 출력이 틀렸을 때만 받습니다.

https://www.acmicpc.net/blog/view/55

bae1776   4년 전

마지막 result에 % 1000000000 을 안했네요;;

답변해주셔서 감사합니다.

댓글을 작성하려면 로그인해야 합니다.