Source ¶
#include <stdio.h> int main() { int N,i,j,k=0; double a[200][200]={0}; int c[200][200]={0}, C=-1; int b[2][200]={0}; scanf("%d",&N); for(i=0;i<N;i++){ scanf("%d %d",&b[0][i],&b[1][i]); } for(i=0;i<N;i++){ //기울기를 구해 a에 넣는다 for(j=i+1;j<N;j++){ //a에 있는 기울기들은 i마다 최대 점의수 -1 까지 들어가겠지 if(b[0][i]==b[0][j]) {C++; continue;} a[i][j]=(b[1][i]-b[1][j])/(b[0][i]-b[0][j]); } for(j=i+1;j<N-1;j++){ //갯수 세기 for(k=0;k<N-1;k++){ //if(a[i][j]!=0){ if(a[i][j]==a[i][k+1]) c[i][j]++; //} } } c[i][0]=c[i][j-1]; for(j=i+1;j<N-1;j++){ if(c[i][0]<c[i][j+1]) c[i][0]=c[i][j+1]; } } //입력해서 기울기를 a에 넣고, C에다 갯수 넣는다. if(C<c[0][0]) C=c[0][0]; for(i=0;i<N-1;i++){ if(c[i][0]<c[i+1][0]) C=c[i+1][0]; } if(C==0) C++; printf("%d",C+1); return 0; }
Trial and Error ¶
- 새벽 5시까지 삽질해서 만든 코드입니다. 웬만한 예외사항도 다 점검해봤는데 됩니다. 하지만 기울기가 소숫값이면 그걸 정수값으로 인식해버리던데, 그걸 아직 해결하지 못하고 있네요. 제 예상대로면 그게 해결되면 accept...일지도.. float로 a배열을 선언해도 안되는건가..? 될텐데;;
1 1
2 1
3 1 만족.
3
1 1
1 2
1 3 만족.
1 1
1 2
1 3 만족.
2
1 1
-100 101 만족
1 1
-100 101 만족
3
1 1
2 2
101 102 만족
1 1
2 2
101 102 만족