어느 부분의 코드가 틀렸는지는 알아냈지만, 잘 이해가 안되는 부분이 있어 질문글에 올려봅니다!
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를 넣으면 안됐는 거였는지 알려주시면 감사하겠습니다
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를 넣으면 안됐는 거였는지 알려주시면 감사하겠습니다