목록분류 전체보기 (291)
궤도
문제 풀이 C의 좌표와 반지름 r을 입력받고 적함대의 수만큼 그 정보를 배열에 저장한다. 그리고 각각의 적함대에 대해 dist함수를 호출해 길이를 구하는데, 다들 알겠지만 두 좌표의 거리를 구할 때는 마지막에 루트를 씌워야한다. 하지만 그렇게 하지 않고 제곱한 상태로 가져왔는데, 루트를 씌우는 과정에서 값이 손실돼 답이 달라질 수도 있기 때문이다. 거리를 제곱해서 가져왔으니 r도 당연히 제곱한 상태로 비교한다. 그리고 범위 안에 들어왔다면 cnt를 증가해서 최종 출력한다. 소스코드 #define _CRT_SECURE_NO_WARNINGS #include #include int dist(int ax, int ay, int bx, int by) { //길이 구함. 루트 씌우면 숫자 달라지니까 그냥 제곱으로 ..
문제 풀이 간단한 369게임이다. 숫자가 2자리 이상이라면 자릿수를 하나하나 쪼개면서 3,6,9인지 확인하는데 36같은 경우 박수 횟수가 2번으로 체크되는 경우를 막기 위해 한자리라도 3,6,9라면 break를 사용해 바로 빠져나왔다. 소스코드 #define _CRT_SECURE_NO_WARNINGS #include int main() { int S, E; int cnt = 0; scanf("%d %d", &S, &E); for (int i = S; i
문제 풀이 m월 d일을 입력하면 1월 1일로부터 며칠이 지나야 m월 d일이 될 지 계산하고 그 결과를 7로 나눠서 요일을 구했다. 처음엔 m월 1일마다의 요일을 구해서 저장할까...같은 노가다성이 짙은 생각을 했는데, 지금 생각해보면 제정신이 아니었나보다. 7월까지는 홀수 달이 31일이고 8월부터는 짝수 달이 31일이다. 1월부터 이에 맞춰 더해가다 m월이 되면 지금까지 더한 결과에 (d-1)을 더한다. 왜 d-1이나면 1월 '1일'부터 시작했기 때문이다. 최종 결과를 7로 나누고 나머지에 따라 switch문에서 해당 요일을 찾아줬는데 지금 생각해보니 차라리 요일을 배열에 저장했으면 코드가 더 짧아졌을 것 같다는 생각이 든다. char day[7][10] = {"일요일", "월요일", "화요일", "수요..