rdd6584   6년 전

이 문제 혹시

(a, b만 봤을 때 굉장한 학생) U (a, c만 봤을 때 굉장한 학생) U (b, c만 봤을 때 굉장한 학생)

으로 풀 수 없는 문제인가요?


https://www.acmicpc.net/proble... 이 문제와 비슷해보여서 이렇게 접근했는데,


66퍼에서 틀렸습니다가 나옵니다. 이 답안이 틀리다는 얘기는 저 합집합에 포함이 안되는

a b c를 모두 고려해야만 가능한 굉장한 학생이 있다는 얘기인데, 그 경우를 못찾겠습니다.


예외좀 알려주세요 !


+ a만 봤을 때 굉장한 학생 U b만 봤을때 굉장한 학생 != a, b만 봤을 때 굉장한 학생인 것 처럼

같은 이유로 안될꺼 같기는 한데, 예외가 궁금해요 !

chogahui05   6년 전

(a, b만 봤을 때 굉장한 학생) U (a, c만 봤을 때 굉장한 학생) U (b, c만 봤을 때 굉장한 학생)

로 푸실 때 어떻게 모델링 하셔서 푸신 건가요??


일단 a만 봤을 때 굉장한 학생이면 a,b만 봤을 때 굉장한 학생이고

a,b만 봤을 때 굉장한 학생이면 a,b,c만 봤을 때 굉장한 학생인 건 맞긴 합니다.. 맞습니다만..


자.

a,b 점수만 봤을 때 X가 굉장한 학생이 아니였어요.

c만 봤을 때 X가 굉장한 학생이 아니였어요.

이 경우 X는 굉장한 학생일까요? 아닐까요?


만약에 X가 굉장한 학생이 아니였다고 생각하셨다면.. 이런 케이스에서 물먹었을 겁니다.

아래 TC에서 3번 학생을 봅시다. a, b 점수만 가지고 봤을 때 3번 학생은 대단한 학생이 아닙니다.

c 점수만 가지고 보았을 때 역시 3은 대단한 학생이 아닙니다.

그런데 3은 이 경우에, 정말 대단한 학생이 될 수 없을까요? 당연한 이야기일지도 모르겠지만.


(2) 번 학생을

3 1 이렇게 채워버리면 됩니다.

rdd6584   6년 전

답변 진심으로 감사드립니다 !

댓글 쓴게 날아가서 다시 쓰네요 ㅠㅠ


제가 AB에서 굉장한 학생을 구한 방법은 다음과 같습니다.

우선 A의 성적을 기준 학생들을 오름차순으로 정렬합니다.

순서대로 탐색을 진행했을 때, x의 B성적이 먼저 탐색한 가장 좋은 성적보다 좋다면 x는 굉장한 학생입니다.


그리고 이 작업을 AB, AC, BC 쌍에 대해서 진행하며, 어느 한 쌍에서라도 굉장한 학생은 굉장한 학생입니다.


1  3  .. (1) 3  1  1  (2) 2  4  2  (3)

위 예제에서, 가희님의 설명이 어떤 느낌인지는 알겠지만, 제 코드는 AB + C 처럼 단순한 형태가 아니고

AB AC BC 모든 쌍에 대해서 체크를 해줬으며, 3번 학생을 굉장한 학생으로 생각하므로 뭔가 와닿지 않습니다. 


A U B = AB가 아닌 것처럼, 제 알고리즘에 뭔가 오류가 있을 수 있다는 사실은 인지하고 있습니다만,

AB U AC U BC에는 속하지 않지만, ABC에는 속하는 경우가 무엇인지 알아내기가 쉽지 않은 것 같습니다.


혹시 좀더 구체적인 예나 증거를 주실 수 있으신지요?

chogahui05   6년 전

너무 피곤해서 어제 8시에 자서 오늘 11시에 일어났네요. 죄송합니다..


마찬가지로 생각하시면 좋지 않을까 싶습니다.

(1)부터 (4)까지 이런 식으로 배치가 되어 있다고 생각해 봅시다.

당연한 이야기겠지만 실제 학생수는 4명보다 더 많습니다. 즉, ..에는 5보다 큰 수가 얼마든지 들어갈 수 있습니다.


4번 학생은 a, b 점수만 봤을 때도 굉장하지 않아요. 그리고 b,c, 점수만 봤을 때도 굉장하지 않죠. 또 c, a만 봤을 때도 굉장하지 않습니다.

그런데 4번 학생은 정녕 굉장한 학생으로 만들 수 있는 방법이 없을까요? 아닙니다.

.. 을 4보다 큰 수로 채워버리면 됩니다.

예를 들어서, after와 같이 채워버렸다고 생각해 봅시다.

그러면 이 때 4는 굉장한 학생이 될 수 있을까요? 그렇지 않을까요?

chogahui05   6년 전

더 정확히 말하면 점수 그룹 A로 봤을 때 굉장하지 않고

점수 B 그룹으로 봤을 때도 굉장하지 않지만

통틀어서 봤을 때 굉장한 경우가 있다는 것이 반례의 이유일 거 같습니다.


꽤 어려운 질문이라 어떻게 답변해 줄 지 고민했던 거 같네요.

풀어보진 않았지만 저 역시 이 문제에 대해서 고민했던 좋은 질문인 거 같네요..

사실 집합으로 적용시키기도.. 어렵지는 않지만 여사건에다가 임의의~, 모든 x에 대해서 ~,


이런 명제까지 나왔으니 빙글 빙글 거려서 생각보다 많이 까다로우셨을 거 같고요..

아마 이 부분에서 막히지 않으셨을지 추정만 해 봅니다. 단순화의 문제인 거 같긴 하지만요.


그냥 반례 하나를 딱 들어버리는 게 적합하지 않나 싶었습니다..

chogahui05   6년 전

팁 하나 드리자면..

제가 고등학생 시절에 수학 시간에 들었던 말 중 하나가..

최악, 최선의 경우는 항상 넣어봐라. 라는 것이였습니다. 명제 시간에 그 이야기가 나왔던 걸로 기억하는데요..


이게 정말 단순한 말 같지만.. (사실 수학 시간에 한 번쯤 들어보셨을지도 모르지요.) 

ps에서도 종종 쓰이는 거 같더라고요. 알아두시면 좋을 거 같아요.

rdd6584   6년 전

chogahui님 말씀에 깊은 깨달음을 얻고 갑니다.

요즘 손도 잘 안가고 아이디어도 잘 안떠오르고 전체적으로 슬럼프네요ㅠㅠ.

(1)1 1 5

(2)5 2 2

(3)3 5 3

(4)4 4 4

이 예제에 반례가 딱 바로 잡혀버리는군요. 손으로 좀더 써봤다면 알아차릴 수도 있었는데 아쉽네요.

최선 최악의 경우 넣어보는 거 꼭꼭 해봐야겠네요. 그리고 머리로만 굴려보지 말고 손으로 좀더 다양한 경우를 생각해봐야겠어요.

위 문제가 어렵게 느껴지지는 않았었는데, 오답뜨고, 게시판에서 생각지도 못한 세그트리코드가 있길래 당황해서 좀 많이 버벅이고 있는 거 같아요.

가희님 설명듣고 다시 한번 도전해보겠습니다. 진심으로 매번 감사합니다.


*답변 하루 지나셨다고 전혀 미안해하지 않으셔도 됩니다. 늦은것도 아닐뿐더러, 답변해주신 자체로 진심으로 고맙습니다. gahui님이 답변해야 할 의무가 있는것이 아니니까요. 좋은 주말되세요 :)

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