[코드그라운드] 연습문제 좋은수 >> 문제 설명 이 문제를 해결할 때 3가지의 숫자의 조합을 얻을 수는 없다. 해결 방법은 P+Q+R = S 의 식을 P + Q = S - R로 변형해서 풀면 된다. 두가지의 숫자의 합을 저장할 배열 (크기 400001, 0번째는 안씀) 을 사용해서 입력받은 집합들의 범위 내에서 (최대 숫자 범위 -100000 ~ 100000) 차례대로 두가지의 숫자를 더한 값을 배열에 저장한다. 숫자들의 합은 음수 까지 생각해서 -200000 ~ 200000 범위라서 배열이 400000을 선언되야 된다. N번째의 숫자 까지 저장했다면 N+1의 숫자의 좋은수를 검사할 때 1~N 의 배열을 이용해서 [N+1] - [1 to N] 을 사용해서 문제를 풀 수 있다. >>작성한 코드 123456789101112131415161.. 알고리즘/코드그라운드 7년 전
[코드그라운드] 연습문제 다트게임 문제 풀이 >> 다트 판의 점수는 총 20 점 까지 이고 한칸당 18도씩 차지하고 있다. 주어지는 x, y좌표의 atan( 역 탄젠트 ) 를 이용해서 각도를 구해서 어느 점수인지 확인 할 수 있다. c언어에서 atan는 라디안 으로 주어지기 때문에 degree로 다시 바꿔서 하는게 편하다. 주의할 점은 6점과 11점이 좌표 0에서 시작하는게 아니기 때문에 구한 각도에 +9를 해서 구해야 한다. 나는 atan2함수를 사용했고 atan2함수는 atan2( y, x )를 해서 사용할 수 있다. 값은 3, 4분면의 좌표값들은 -각도로 나오기 때문에 그것도 고려해주어야 한다. 문제만 이해된다면 쉽게 작성할 수 있는 문제다. 코드 >> 12345678910111213141516171819202122232425262.. 알고리즘/코드그라운드 7년 전
[코드그라운드] 연습문제 정수 정렬하기 문제>> 코드 >> 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849#include #include int Answer;int compare(void *first, void *second){ if(*(int*)first > *(int*)second) return 1; else if(*(int*)first 알고리즘/코드그라운드 7년 전