[문제 위치]
https://www.acmicpc.net/problem/28038
[문제 풀이]
이 문제는 직교좌표계와 극좌표계 사이에서 좌표를 변환하는 문제입니다. 각 테스트 케이스마다 주어진 좌표를 다른 좌표계로 변환하여 결과를 출력해야 합니다. 직교좌표계를 극좌표계로, 혹은 그 반대로 변환하는 공식이 사용됩니다.
접근 방식:
- 각 테스트 케이스의 좌표계 유형과 좌표를 입력받습니다.
- 주어진 좌표를 다른 좌표계로 변환합니다.
- 변환된 좌표를 출력합니다.
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
const double PI = acos(-1);
int main() {
int T;
cin >> T;
cout << fixed << setprecision(8);
while (T--) {
int type;
double a, b;
cin >> type >> a >> b;
if (type == 1) {
// 직교좌표계 (x, y) -> 극좌표계 (r, θ)
double x = a, y = b;
double r = sqrt(x * x + y * y);
double theta = atan2(y, x);
if (theta < 0) theta += 2 * PI;
cout << r << " " << theta << endl;
} else if (type == 2) {
// 극좌표계 (r, θ) -> 직교좌표계 (x, y)
double r = a, theta = b;
double x = r * cos(theta);
double y = r * sin(theta);
cout << x << " " << y << endl;
}
}
return 0;
}
'문제 풀이 > 문제 풀이(BOJ)' 카테고리의 다른 글
[Silver V] 재귀함수가 뭔가요? - 17478 (0) | 2024.08.08 |
---|---|
[Silver V] 28064번 - 이민희진 (0) | 2024.08.01 |
[Bronze I] 16396번 - 선 그리기 (0) | 2024.08.01 |
[Gold IV] 3584번 - 가장 가까운 공통 조상 (0) | 2024.08.01 |
문제: [Silver V] 22232번 - 가희와 파일 탐색기 (0) | 2024.08.01 |