// 이 부분에서 알고리즘 프로그램을 작성하십시오.
int bull, double_start, double_end, triple_start, triple_end;
cin >> bull ;
cin>> triple_start;
cin>> triple_end;
cin >> double_start ;
cin>> double_end ;
int n, result = 0;
cin >> n;
for (int i = 0; i<n; i++){
int x,y,score;
int multiple = 1;
double degree, distance;
cin >> x;
cin >> y;
degree = atan2(y,x) * 180/ PI;
distance = sqrt(x*x+y*y);
if(distance < bull){
result += 50;
continue;
}
if(distance > double_start && distance < double_end) multiple = 2;
else if(distance > triple_start && distance <triple_end) multiple = 3;
else if(distance > triple_end) continue;
if (degree > 9 && degree < 27) score = 13;
else if (degree > 27 && degree < 45) score = 4;
else if (degree > 45 && degree < 63) score = 18;
else if (degree > 63 && degree < 81) score = 1;
else if (degree > 81 && degree < 99) score = 20;
else if (degree > 99 && degree < 117) score = 5;
else if (degree > 117 && degree < 135) score = 12;
else if (degree > 135 && degree < 153) score = 9;
else if (degree > 153 && degree < 171) score = 14;
else if (degree > 171 && degree < 189) score = 11;
else if (degree > 189 && degree < 207) score = 8;
else if (degree > 207 && degree < 225) score = 16;
else if (degree > 225 && degree < 243) score = 7;
else if (degree > 243 && degree < 261) score = 19;
else if (degree > 261 && degree < 279) score = 3;
else if (degree > 279 && degree < 297) score = 17;
else if (degree > 297 && degree < 315) score = 2;
else if (degree > 315 && degree < 333) score = 15;
else if (degree > 333 && degree < 351) score = 10;
else score = 9;
result += (score*multiple);
}
시발 지금 비주얼스튜디오 날아가서 돌려보지도 못하고 ㅠㅠ
글고 여기서 if문좀 더 빼고싶은데 어떻게해야될까
그냥 이프문을빼고 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 조건문배열을만들어서 검사하심이.... 함수를만들던가 저런식으로짜놓은코드 내봤자 ... 코드한번보고 이놈은 알될놈이라고하고 빠꾸임
뺄필요있냐 복잡한 코드도 아니고...
재사용성 확장성 모두 고려하지않은 전형적인 초급코더수준의 코딩 안빼도되간하는데 그게 코더수준을 보여주는걸수도 ㅋㅋㅋㅋㅋㅋㅋㅋㅋ
디그리가 350에서 끝나는거냐? 문제 보니까 어차피 각 구간은 15도인가? 20도단위로 값이 바뀌는거같은데 배열에다가 그만큼 일정한 구간을 해당 값으로 채우고, degree는 정수형으로 파싱해서 인덱스로 쓰면될듯
18도구나..
아님말고 ^^7
아 34분면이 -구나
근데 조건문배열이 뭐냐
이딴 식으로 풀어야되는거임?
미안 말잘못함 안깝칠께 근데 저건 아무리봐도 아닌듯 ㅋㅋㅋㅋ
123 말대로 0~19 20분면으로 나눠서 각 분면마다 스코어 점수를 배열로 가지고 있는게 더 직관적이지. 각도가 18도씩 증가하니까 for문 돌리면서 체크하면 4줄이면 끝나겠구만
for 문도 아니고 degree를 18로 나누면 몇 분면에 있는지 O(1)에 찾을 수 있구만