swdream   5년 전

  1. 먼저 n개씩 배열 a,b,c,d에 차례대로 숫자를 입력받습니다.
  2. 입력받은 배열숫자들을 각각 합을 구하기 위해 4중 for 문을 돌려서 sum이 0일 경우 cnt에 1씩 더하는 방식으로 계산했습니다.

애초에 테스트 답도 3이 나오네요... 

제가 생각을 잘못한걸까요? 

kimsy96   5년 전

어찌어찌 코드를 다듬으면 답은 나올거같은데

시간초과가 날거같습니다

swdream   5년 전

먼저 답변 감사드립니다..

그런가요..??

그런데 저는 테스트 input에 대한 답조차도 계속 틀리게 나오는군요.. 

해당건에 대해 원래는 5가 나와야 하는데 저는 3이 나오네요.. 

6
-45 22 42 -16
-41 -27 56 30
-36 53 -37 77
-36 30 -75 -46
26 -38 -10 62
-32 -54 -6 45

djm03178   5년 전

각 배열에서 하나씩 골라야 합니다. 그런데 입력되는 순서가 첫 번째 배열의 수가 모두 주어진 뒤 두 번째 배열의 수가 모두 주어지는 방식이 아니라 각 배열의 첫 번째 원소가 다 주어지고 그 다음 두 번째 원소가 다 주어지는 방식입니다. 그래서 순서대로 입력받은 배열의 1~n번째 수가 1번째 배열에서 수를 하나 뽑는 게 아닙니다.

jh05013   5년 전

네 배열의 원소가 어떤 순서로 저장되어 있는지 풀어서 써 보세요.

swdream   5년 전

배열에서 하나씩 골라야 하기때문에 

아예 배열을 네개로 쪼개서 계산했습니다. (배열 a,b,c,d로 ... )

이래도 각 배열에서 하나씩 뽑는 코드가 안나오는군요.. 혹시 잘못된것이 있을까요?

djm03178   5년 전

다시 말씀드리지만, a 배열이 먼저 다 주어지고 그 다음에 b가 주어지는 게 아닙니다. a[0], b[0], c[0], d[0]가 주어지고, 그 다음에 a[1], b[1], c[1], d[1]이 주어지는 순입니다. 그러니 n개의 수를 먼저 다 a에 입력받아버리면 당연히 안 됩니다.

jh05013   5년 전

그리고 v1과 v2의 크기는 각각 n이 아니라 n^2인데 루프는 n까지만 가고 있습니다.

미리 말씀드리자면 이렇게 했다간 시간초과가 납니다. 이분 탐색을 공부해 보세요.

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