halo301   2년 전

친구랑 대화하다가 합의가 나오지 않아 백준 선생님들에게 여쭈어 봅니다.

1026번 문제의 보물 문제에서 조건 중

" 단, B에 있는 수는 재배열하면 안 된다. "
라는 문구가 있습니다.

친구1 입장: 그럼 변수 C를 선언해서 B에 있는 값을 복사해와서 C를 재배열하면 B를 재배열 하는 것이 아니기 때문에 조건에 위배되지 않는다. 즉 C에 있는 숫자와 B에 있는 숫자는 값이 같을 지라도 메모리상 위치가 달라 당연히 다른 값으로 인식하여야 한다. 즉 조건이 완벽하지 않다.

친구2 입장: 아니다. "B에 있는 숫자" 라고 했으므로 예제 입력 1 값이라고 한다면 2, 7, 8, 3, 1 숫자 5개를 의미한다. 이 숫자 5개는 한번 담은 이상 어디에 존재하던 재배열하지 않은 순서 그대로 문제를 풀어야 한다. B를 C에 복사해와도 2, 7, 8, 3, 1 숫자를 그대로 따온 것이므로 C또한 재배열 해서는 안된다.

친구1의 입장이 맞는지, 친구2의 입장이 맞는지 다양한 견해를 부탁드립니다. 감사합니다.

wider93   2년 전

B에 있는 는 값을 복사해서 C에 옮기고 재배열하든 말든 B에 있는 값은 그대로일 테니 식에도 아무런 변화가 없다고 생각합니다.

.

사실 B가 재배열이 되든 말든 답이 변화하지 않기 때문에, 별로 고민할 이유가 없는 질문 같습니다만, 아무튼 제 해석은 그렇습니다.

Green55   2년 전

죄송하지만 무슨 뜻인지 이해가 안됩니다. C는 문제에 나오는 것도 아닌데, 문제에서 C에 대한 제약 조건을 따지는 것이 무슨 의미가 있나요?

혹시 "단, B에 있는 수는 재배열하면 안 된다."를 "문제를 풀기 위한 코드를 작성할 때, 코드에서 선언한 B라는 배열을 재배열 하면 안된다"라고 이해하신거면 아예 잘못된 해석입니다. 저 문장은 S = A[0] × B[0] + ... + A[N-1] × B[N-1] 라는 식을 계산 할 때, B를 재배열 할 수 없다는 것이지 그 이상의 뜻은 없습니다.

koosaga   2년 전

일단은

친구1 입장: 그럼 변수 C를 선언해서 B에 있는 값을 복사해와서 C를 재배열하면 B를 재배열 하는 것이 아니기 때문에 조건에 위배되지 않는다. 즉 C에 있는 숫자와 B에 있는 숫자는 값이 같을 지라도 메모리상 위치가 달라 당연히 다른 값으로 인식하여야 한다.

라는 논의가 왜 조건이 완벽하지 않다로 귀결되는지 모르겠습니다.

그와 별개로, "변수 C를 선언해서 B에 있는 값을 복사해와서 C를 재배열하면 B를 재배열 하는 것이 아니기 때문에 조건에 위배되지 않는다" 라는 말이 있는데, 이건 저한테는 "음주운전은 내가 한게 아니라 내 손발이 한 거라서 나는 무죄다" 랑 똑같은 말로 들립니다.

koosaga   2년 전

언어는 사람이 쓰는 것이고 당연히 부정확한 면이 있습니다. 다만 무언가가 모호하다고 생각되면 보통 적은 것을 요구하고 짧게 떨어지는 설명이 옳습니다. 주장 설명을 위해 "변수" 나 "메모리" 같은 단어가 나와야 한다는 시점에서부터 너무 복잡하고 이해하기 어렵습니다. 그건 문제 지문에 나와 있는 개념이 아니고 본인 마음 속에 있는 개념입니다. 고로 주장을 확실하게 설명하려면 본인 마음 속에 있는 "변수" 와 "메모리" 의개념이 무엇인지를 설명하고, 그것이 문제 지문에 나와 있는 개념과 어떻게, 왜 대응되는지도 설명해야 합니다.

dlaskrgus8   2년 전

개인적으로는 친구2가 맞다고 생각합니다. 친구1의 의견대로라면 분명 문제 자체는 쉬워지겠지만, 문제를 낸 의도는 그게 아니라고 판단이 되기 때문입니다.

아마 이 문제가 출제된 곳에서도 친구2의 주장으로 채점을 하지 않았을까 생각합니다.

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