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 만족










