어떻게 해서 이게 오답인지 모르겠네요. Nes G++이나 VS를 통해 실행하여봐도 전부 원하는 값이 나오는데 오답이더군요. 제가 문제의 조건이나 출력방법을 잘못이해하고 있는건가요? DRAWRECT #include <iostream> #include <vector> using namespace std; int findX(int inputX_1, int inputX_2, int inputX_3, int inputY_1, int inputY_2, int inputY_3) { if(inputX_1 == inputX_2) return inputX_3; else { if(inputY_1 == inputY_2) { if(inputX_1 == inputX_3) return inputX_2; else return inputX_1; } else return inputX_1; } } int findY(int inputX_1, int inputX_2, int inputX_3, int inputY_1, int inputY_2, int inputY_3) { if(inputX_1 == inputX_2) { if(inputY_1 == inputY_3) return inputY_2; else return inputY_1; } else { if(inputY_1 == inputY_3) return inputY_2; else return inputY_3; } } void makeOutput() { int testNum; int tempX = 0; int tempY = 0; vector<int> resultX, resultY, ordinateX, ordinateY; int forCount = 0; cin >> testNum ; for(forCount = 0 ; forCount < testNum*3 ; forCount++) { int printCount = 0; cin >> tempX >> tempY ; if(tempX < 1 || tempY < 1 || tempX > 1000 || tempY > 1000) break; ordinateX.push_back(tempX); ordinateY.push_back(tempY); if(forCount%3 == 2) { resultX.push_back(findX(ordinateX[forCount-2], ordinateX[forCount-1], ordinateX[forCount], ordinateY[forCount-2], ordinateY[forCount-1], ordinateY[forCount])); resultY.push_back(findY(ordinateX[forCount-2], ordinateX[forCount-1], ordinateX[forCount], ordinateY[forCount-2], ordinateY[forCount-1], ordinateY[forCount])); } } for (int forCount = 0 ; forCount < testNum ; forCount++) { cout << resultX[forCount] << " " << resultY[forCount] << endl; } } int main() { makeOutput(); return 0; } 12년 전
3개의 댓글이 있습니다. Being findX()가 문제가 있을 것 같습니다. 예를 들어, 1번 점과 2번 점이 서로 대각선에 위치해 있다고 하면 언제나 1번 점의 x 좌표를 되돌리겠지만 그렇지 않은 경우가 있을 수 있겠네요. 12년 전 link Being 조금 더 생각해 보시면 findX와 findY의 코드 모양새가 (물론 꼭 그럴 필요는 없지만) 대칭적인 것이 자연스럽겠지요. 12년 전 link Nes 하 검산의 부족이네요 감사합니다. 12년 전 link 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.
Nes
G++이나 VS를 통해 실행하여봐도 전부 원하는 값이 나오는데 오답이더군요.
제가 문제의 조건이나 출력방법을 잘못이해하고 있는건가요?
DRAWRECT
12년 전