jisang7747   3년 전

C는 틀렸다고 나오고, 파이썬은 런타임에러가 나옵니다..


#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main() { int N; scanf("%d", &N); if (N == 0) { printf("0"); } else { int num[1001][5] = { 0, }; int student[1001][5] = { 0, }; for (int i = 0; i < N; i++) { for (int j = 0; j < 5; j++) { scanf("%d", &student[i][j]); } } for (int i = 0; i < N; i++) { for (int j = 0; j < 5; j++) { for (int k = 0; k < N; k++) { if (student[i][j] == student[k][j]) { num[i][k] += 1; } } } } int ans[1001] = { 0, }; for (int i = 0; i < N; i++) { for (int j = 0; j < 5; j++) { if (num[i][j] != 0) ans[i]++; } } int max = -1; int x = 0; for (int i = 0; i < N; i++) { if (max < ans[i]) { max = ans[i]; x = i; } } printf("%d", x + 1); } } 파이썬 N=int(input()) if(N==0): print(0) else: student=[] num=[[0]*5 for i in range(N+1)] for i in range(N): student.append(list(map(int,input().split()))) for i in range(N): for j in range(5): for k in range(N): if(student[i][j]==student[k][j]): num[i][k]+=1 ans=[0]*N for i in range(N): for j in range(5): if(num[i][j]!=0): ans[i]+=1 print(ans.index(max(ans))+1)

choko100   1년 전

안녕하세요, 파이썬 런타임 에러는 아래 부분에서 났을 것 같습니다.

num 의 사이즈는 [N+1][5] 크기로 잡으셨는데, for 문을 보면 i 와 K 를 N 까지로 돌고 있습니다.

num[N][N] 접근하면서 런타임 에러가 났을 것 같습니다.

if(student[i][j]==student[k][j]):
                    num[i][k]+=1   

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