alswm12   10년 전

배열 a[]와 b[]에 각각 문제에 제시된 a, b를 입력받은 후

배열 c[]에서는 반복문을 통해 c[0]부터 차례대로 a[j], a[j]^2, a[j]^3 ....을 10으로 나눈 나머지들을

저장하여, c[i]가 c[0]와 같은 값이 되면 반복문을 탈출하게 하고

출력되어야 하는 값이 몇 번 째에 있는지 알기 위해 b[j]를 반복되는 나머지들의 갯수로 나누어 나눈 값의 나머지를 k에 저장하였습니다.

다만, 출력될 때 배열은 c[0]이 첫번째 이므로 c[k]가 아닌 c[k-1]을 출력했고

c[k-1]이 0인 경우는 문제에서 10번째 컴퓨터로 분석되는 경우 이므로 10을 출력하게 하였습니다.

설명이 너무 복잡하네요 ㅠㅠ

코드에서 35~40번째 줄을 if, else없이 

printf("%d\n", c[k-1]); 만을 썼을 때는 시간 초과가 되고

게시글에 올린 대로하면 segmentation error가 뜨는데 뭐가 잘못되었는지 모르겠습니다 ㅠㅠ

baekjoon   10년 전

입력을 모두 받고 정답을 계산한 다음, 출력하는 방식 말고 하나 입력받고 답 하나 출력하는 방식으로 바꿔보시는 것이 어떨까요?

문제에는 테스트 케이스의 개수 제한은 나와있지 않습니다. segmentation error와 시간 초과가 뜨는 이유는 아마 배열 index를 넘어가기 때문입니다.

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