bwnabi   2년 전

안녕하세요. 채점에 관해서 물어보려고 처음으로 글 올려보네요.

제가 이 문제에 대한 채점이 이상해서 한참 오답처리를 당했는데, 다른 문제도 그런건가 싶어서 글 올려봐요.

1.

for (i = 0; i < A; i++) {
scanf("%d \n %d", &K[i], &N[i]);
}
for (i = 0; i < A; i++) {
printf("%d\n", count(K[i],N[i],K[i],N[i]));
}

2.

for (i = 0; i < A; i++) {
scanf("%d \n %d", &K, &N);
printf("%d\n", count(K, N, K, N));
}


둘다 결과값은 정상적인 값이 도출됩니다만 첫번째껀 몰아서 한번에 출력하고, 두번쨰껀 그때그때 출력하는 것 밖에 차이가 없어요. 그런데 2번째것만 정답처리가 되더라구요.

다른 문제들도 전부 2번과 같은 방식으로 문제를 풀어야하는지 궁금합니다.
또 그렇다면 2개 사이에 메모리 할당 문제말고 다른 어떤 차이가 있는지 궁금합니다.



yukariko   2년 전

두 코드는 딱히 문제가 없어보입니다.

만약 문제가 있다면 다른 부분의 코드가 문제인것 같습니다.

그리고 대부분의 경우에서 2번의 방식이 좋습니다.

seico75   2년 전

1번으로 푸시려면 최대 케이스 수만큼 배열을 잡아야하는게 문제에는 최대값이 없어서 생각하신 것보다 많은 케이스가 있어 틀렸을것으로 생각되네요

정오가 아니어도 1번이 2번 보다 나은 이유는 없어보입니다.  저장 필요없는 정보는 저장하지 않는것이나 메모리 속도등

bwnabi   2년 전

답변 감사합니다!

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