[TIL]20210721

박창현·2021년 7월 21일
0

TODAY I LEARNED

목록 보기
20/53

알고리즘

백준 4948

#include <stdio.h>
#include <string.h>
int main()

{
  while(1){
  int N,M,number[1000001],cnt=0;
  scanf("%d",&N);
  if(N==0){
    break;
  }
  for (int i=2;i<=2*N;i++){
    number[i]=i;
  }
  for (int i=2;i<=2*N;i++){
    if(number[i]==0){
      continue;
    }
    for(int j=i+i;j<=2*N;j+=i){
      number[j]=0;
    }
  }
  for(int i=N+1;i<=2*N;i++){
    if(number[i]!=0){
      cnt++;
    }
  }
  printf("%d\n",cnt);
}
}

백준 9020

오답 ( 시간초과 )

#include <stdio.h>
#include <string.h>
int main()
{
  int circle;
  scanf("%d",&circle);
  int N,M,number[10001],cnt=0;
  char ans[100]={0};
  
  for (int i=2;i<=10000;i++){
    number[i]=i;
  }
  for (int i=2;i<=10000;i++){
    if(number[i]==0){
      continue;
    }
    for(int j=i+i;j<=10000;j+=i){
      number[j]=0;
    }
  }
  //여기까지가 소수 확인.

  for(int i=0;i<circle;i++){
  scanf("%d",&N);
int a=0;
  for(int i=2;i<=N;i++){
    if(number[i]!=0){
      for(int j=i;j<=N;j++){
        if(number[j]!=0){
          if (i+j==N){
        ans[0]=number[i];
        ans[1]=number[j];
            }
          }
        }
      }
    }
    printf("%d %d",ans[0],ans[1]);
  }

}

백준 2750

#include <stdio.h>
#include <string.h>
int main()
{
  int min,max,tmp,num,arr[1001]={0},index;
  scanf("%d",&num);
  for (int i=0;i<num;i++){
    scanf("%d",&arr[i]);
  }
  for (int i=0;i<num;i++){
    for(int j=i;j<num;j++){
    if(arr[i]<arr[j]){
      tmp=arr[i];
      arr[i]=arr[j];
      arr[j]=tmp;
    }
    }
  }
  for(int i=num-1;i>=0;i--){
  printf("%d\n",arr[i]);
  }
}

백준 1085

#include <stdio.h>
#include <string.h>

int main()
{
  int x,y,w,h,low,arr[4]={0};
  scanf("%d %d %d %d",&x,&y,&w,&h);
  arr[0]=w-x,arr[1]=x,arr[2]=h-y,arr[3]=y;
  low=arr[0];
  for (int i=1;i<4;i++){
    if(arr[i]<low){
      low=arr[i];
    }
  }
  printf("%d",low);
}

백준 3009

#include <stdio.h>
#include <string.h>

int main()
{
  int x,y,arr_x[4]={0},arr_y[4]={0}; 
  for(int i=0;i<3;i++){
  scanf("%d %d",&arr_x[i],&arr_y[i]);}
    if(arr_x[0]==arr_x[1]){
      x=arr_x[2];
    }
    else if(arr_x[1]==arr_x[2]){
      x=arr_x[0];
    }
    else{
      x=arr_x[1];
    }

    if(arr_y[0]==arr_y[1]){
      y=arr_y[2];
    }
    else if(arr_y[1]==arr_y[2]){
      y=arr_y[0];
    }
    else{
      y=arr_y[1];
    }
  printf("%d %d",x,y);
}

백준 4153

#include <stdio.h>
#include <string.h>

int main()
{
  while(1){
  int a[3]={0},biggest,index,s[2]={0};

  scanf("%d %d %d",&a[0],&a[1],&a[2]);
  if (a[0]==0 && a[1]==0 && a[2]==0){
    break;
  }
  biggest=a[0];

  for (int i=0;i<3;i++){
    if(biggest<=a[i]){
      biggest=a[i];
      index=i;
    }
  }
  int c=0;
  for (int i=0;i<3;i++){
    if(index!=i){
      s[c]=a[i];
      c++;
    }
  }
  if(s[0]*s[0]+s[1]*s[1]==biggest*biggest){
    printf("right\n");
  }
  else{
    printf("wrong\n");
  }
}
}

백준 3053

#include <stdio.h>
#include <string.h>

int main()
{
  int input;
  double re1,re2;
  scanf("%d",&input);
  printf("%.6lf\n%.6lf",(double)input*input*3.14159265359,(double)input*input*2);
}

택시기하학이 뭔지 모르겠다. 그냥 r*r*2라고만 알아둘께..

profile
개강했기에 가끔씩 업로드.

0개의 댓글