migu554   3년 전

어느 부분의 코드가 틀렸는지는 알아냈지만, 잘 이해가 안되는 부분이 있어 질문글에 올려봅니다!

for (int k = 0; k < 3; k++) {
   int num1 = a / d[2 - k];
      for (int l = 0; l < 3; l++) {
          int num2 = b / d[2 - l];
          if (num1 == num2) {
                if (k == l) st++;
                else ba++;

               (break;) (기존 코드)
            }
          b = b % d[2 - l];
          }
        b = tar[j];
      a = a % d[2 - k];
}

위 코드는 두 개의 숫자의 자리수를 비교하는 코드입니다.

코드는 통과했는데 왜 기존 코드는 틀렸던 건지 잘 이해가 안가서 질문 하나 올려봅니다..!

이 문제에선 중복인 숫자를 애초에 허용하지 않고 코드에서 보시다 시피 isValid를 통해 중복인 숫자를 검사해서 중복일 경우 다음 숫자를 검사하도록 하고 있습니다. 또한, 실제로 검사하는 코드에서도 같은 숫자가 한 번 더 발견될 경우 중복이라는 의미니 break문을 걸어줬었는데 틀렸다고 뜨더라고요.

제가 놓치는 부분이 있는 거 같긴한데... 왜 break를 넣으면 안됐는 거였는지 알려주시면 감사하겠습니다

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