[TIL]20210722

6924 단어 알고리즘TILTIL

알고리즘

백준 1002

틀림. 수정할 것.
사용해보는 include <math.h>pow.
10의 2제곱을 구한다면 -> pow(10, 2);을 이용하면 된다.

#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>
int main()
{
  int x1,y1,x2,y2,r1,r2,cnt=0,num,d;
  scanf("%d",&num);
  for (int i=0;i<num;i++){
    scanf("%d %d %d %d %d %d",&x1,&y1,&r1,&x2,&y2,&r2);
		d = sqrt(pow(x1-x2, 2) + pow(y1-y2, 2));
		if (d == 0){
      if (r1==r2){
			printf("-1\n");
      }
    else{
      printf("0\n");
    }
    }
		else if (abs(r1 - r2) == d || d == abs(r1 + r2))
			printf("1\n");

		else if (abs(r1 - r2 < d) && d < abs(r1 + r2))
			printf("2\n");
		
    
    else 
			printf("0\n");
	}
}

실버 수준의 두 문제를 오랜시간 동안 붙잡으면서도 풀지못하는 걸 보면서, C언어 베이스 없이 너무 달려드니 오히려 비효율적이란 것을 느꼈다. CS50을 통해 최소한의 기초는 들었지만 아직 많이 부족하다는 느낌이 강해 알고리즘 풀이를 잠깐 멈추고 이것이 코딩테스트다, 파이썬 알고리즘 인터뷰 두 책을 통해 알고리즘을 공부하려한다.

좋은 웹페이지 즐겨찾기