181011
#include
#include
#include
void cleanBuffer(void){
while(getchar()!='\n');
}
int main() {
int cases, i, pt[4][2];
char pts[20];
scanf("%d", &cases); cleanBuffer();
while(cases--) {
for(i=0;i<3;i++) {
fgets(pts, 20, stdin);
pt[i][0]=atoi(strtok(pts, " "));
pt[i][1]=atoi(strtok(NULL, " "));
}
pt[3][0]=(pt[0][0]==pt[1][0])?pt[2][0]:((pt[0][0]==pt[2][0])?pt[1][0]:pt[0][0]);
pt[3][1]=(pt[0][1]==pt[1][1])?pt[2][1]:((pt[0][1]==pt[2][1])?pt[1][1]:pt[0][1]);
printf("%d %d\n", pt[3][0], pt[3][1]);
}
}<3i 20="" atoi="" code="" d="" fgets="" i="" n="" printf="" pt="" pts="" stdin="" strtok="">3i>
직사각형의 네 변이 반드시 뷰포트의 두 축에 평행하다는 힌트를 이용했다. 두 축이 평행하다면 2개의 꼭지점은 반드시 x의 꼭지점이 같거나 y의 꼭지점이 같을 것이기 때문이다.
오래 걸린 부분은 코드를 단축할 수 없을까 하는 부분이었다. 2차원 배열을 비교하는 부분에서 코딩하고 나니까 너무 어지러워서 줄이고 싶었다. 결국 실패했지만.
scanf()와 같이 Buffer로 연속으로 받으면 전의 값이 버퍼에 남아 있어서 다음 입력값은 받을 수 없다. 는 알았던 사실이지만, fflush()가 gcc 환경에서는 사용할 수 없다는 것을 알았다. OS에 따라 다르다고 한다.
* cleanBuffer을 구현한 원리 공부하고 정리하기
오래 걸린 부분은 코드를 단축할 수 없을까 하는 부분이었다. 2차원 배열을 비교하는 부분에서 코딩하고 나니까 너무 어지러워서 줄이고 싶었다. 결국 실패했지만.
scanf()와 같이 Buffer로 연속으로 받으면 전의 값이 버퍼에 남아 있어서 다음 입력값은 받을 수 없다. 는 알았던 사실이지만, fflush()가 gcc 환경에서는 사용할 수 없다는 것을 알았다. OS에 따라 다르다고 한다.
* cleanBuffer을 구현한 원리 공부하고 정리하기
댓글 없음:
댓글 쓰기