1번이 답인데 j값이 아니라 행인 i값을 ++하며 진입차수든 진출차수를 구해야할거같은데 왜 j값을 ++하며 값을 구하는지 이해가 가질않습니다..
첫댓글 진입차수는 j->i 로 오는거기 때문에 indegree+=a[j][i]가 맞고 진출 차수는 i->j 를 계산해야 하기에 out_degree+=a[i][j]로 되어있어 맞습니다
for문에 j++인데 i++한 4번은 안돼는건가요?
4번은 for문 자체가 잘못됐습니다
혹시 3번을 말씀하신 거라면 3번은 Vi를 구하는게 아니라 Vj를 구하고 있어 잘못된거에요
@김기윤 4번이용 4번for문 문법이 틀린거는 알겠는데 만약 정확한 문법이면 i 인덱스를 옮겨서는 진입 진출 차수를 구할 수 없나요?
4번이 정확한 문법이였다면 indegree=a[ j][0]+a[j][1]+a[j][2] ... 이렇게 되기 때문에 이는 Vj 의 outdegree를 구하는 식이 되기 때문에 틀렸습니다 설령 indegree+=a[i][j] 였다고 해도 여기서 i가 증가하며 계산되면 이거는 Vj의 indegree이므로 Vi의 진입 진출 차수를 구하라는답에는 틀린거같습니다
@김기윤 아래 홍쌤이 해결해주셔서 이해했습니다 어쨋든 답변 친절히 해주셔서 감사합니다~
추가로 좀 더 적으면문제에서 다음처럼 제시되어 있는데, 일부 코드만 제시한 것입니다.① in_degree = out_degree = 0; for(j=0; j<=n-1; j++) in_degree = in_degree + a[j][i]; for(j=0; j<=n-1; j++) out_degree = out_degree + a[i][j]:in_degree = 0; for(j=0; j<=n-1; j++) in_degree = in_degree + a[j][i]; 를 완성하면 다음과 같습니다.in_degree = 0;for(i=0; i<=n-1; i++) for(j=0; j<=n-1; j++) in_degree = in_degree + a[j][i];
감사합니다 선생님 ~!
누구나 처음 그냥 보면 헷갈릴 수 있습니다.헷갈리는 이유는 다음과 같습니다.in_degree = 0;for(i=0; i<=n-1; i++)for(j=0; j<=n-1; j++) in_degree = in_degree + a[j][i];에서a[j][i] 부분은 통상적으로 전산 개발에서 a[i][j]처럼 프로그래밍하는데출제자는 a[i][j]로 기술하지 않고 a[j][i]로 기술하였습니다.이런 것은 바람직하지 않습니다.
in_degree = 0;for(i=0; i<=n-1; i++)for(j=0; j<=n-1; j++) in_degree = in_degree + a[j][i];에서 인덱스 변화를 적어보면[0][0],[1][0],[2][0] [0][1],[1][1],[2][1][0][2],[1][2],[2][2]아무튼, 제가 적으면서도 평소와 다르므로 참 헷갈리고 있습니다.혹시 잘못 적은 것이 아닌가......
감사합니다~
첫댓글 진입차수는 j->i 로 오는거기 때문에 indegree+=a[j][i]가 맞고
진출 차수는 i->j 를 계산해야 하기에 out_degree+=a[i][j]로 되어있어 맞습니다
for문에 j++인데 i++한 4번은 안돼는건가요?
4번은 for문 자체가 잘못됐습니다
혹시 3번을 말씀하신 거라면 3번은 Vi를 구하는게 아니라 Vj를 구하고 있어 잘못된거에요
@김기윤 4번이용 4번for문 문법이 틀린거는 알겠는데 만약 정확한 문법이면 i 인덱스를 옮겨서는 진입 진출 차수를 구할 수 없나요?
4번이 정확한 문법이였다면 indegree=a[ j][0]+a[j][1]+a[j][2] ... 이렇게 되기 때문에 이는 Vj 의 outdegree를 구하는 식이 되기 때문에 틀렸습니다
설령 indegree+=a[i][j] 였다고 해도 여기서 i가 증가하며 계산되면 이거는 Vj의 indegree이므로 Vi의 진입 진출 차수를 구하라는답에는 틀린거같습니다
@김기윤 아래 홍쌤이 해결해주셔서 이해했습니다 어쨋든 답변 친절히 해주셔서 감사합니다~
추가로 좀 더 적으면
문제에서 다음처럼 제시되어 있는데, 일부 코드만 제시한 것입니다.
① in_degree = out_degree = 0;
for(j=0; j<=n-1; j++) in_degree = in_degree + a[j][i];
for(j=0; j<=n-1; j++) out_degree = out_degree + a[i][j]:
in_degree = 0;
for(j=0; j<=n-1; j++) in_degree = in_degree + a[j][i]; 를 완성하면 다음과 같습니다.
in_degree = 0;
for(i=0; i<=n-1; i++)
for(j=0; j<=n-1; j++) in_degree = in_degree + a[j][i];
감사합니다 선생님 ~!
누구나 처음 그냥 보면 헷갈릴 수 있습니다.
헷갈리는 이유는 다음과 같습니다.
in_degree = 0;
for(i=0; i<=n-1; i++)
for(j=0; j<=n-1; j++) in_degree = in_degree + a[j][i];에서
a[j][i] 부분은 통상적으로 전산 개발에서 a[i][j]처럼 프로그래밍하는데
출제자는 a[i][j]로 기술하지 않고 a[j][i]로 기술하였습니다.
이런 것은 바람직하지 않습니다.
in_degree = 0;
for(i=0; i<=n-1; i++)
for(j=0; j<=n-1; j++) in_degree = in_degree + a[j][i];에서 인덱스 변화를 적어보면
[0][0],[1][0],[2][0]
[0][1],[1][1],[2][1]
[0][2],[1][2],[2][2]
아무튼, 제가 적으면서도 평소와 다르므로 참 헷갈리고 있습니다.
혹시 잘못 적은 것이 아닌가......
감사합니다~