반응형
https://www.acmicpc.net/problem/15923
간단 구현 문제였습니다.
📕 풀이방법
📔 입력 및 초기화
좌표 구조체 Point, 이를 vector형태로 받는 v, 좌표개수 n, 정답을 출력할 ans를 선언 후 입력받습니다.
📔 풀이과정
좌표 A(a, b), B(c, d)의 선분 AB는 다음 공식으로 구할 수 있습니다.
$$ sqrt((a-c)^2 + (d - b)^2) $$
v를 순회하며 모든 둘레 선분의 길이를 구해 ans에 더해줍니다.
📔 정답출력
ans를 출력합니다.
📕 Code
#include <bits/stdc++.h>
using namespace std;
struct Point { int x,y; };
vector <Point> v;
int n;
double ans;
int main(){
cin >> n;
v.resize(n);
for(int i = 0; i < n; i++) {
cin >> v[i].x >> v[i].y;
}
for(int i = 0; i < v.size(); i++) {
double len;
if(!i) len = sqrt(pow(v[0].x - v[n-1].x, 2) + pow(v[0].y - v[n-1].y, 2));
else len = sqrt(pow(v[i].x - v[i-1].x, 2) + pow(v[i].y - v[i-1].y, 2));
ans += len;
}
cout << ans;
}
*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.
'Algorithm > Implementation' 카테고리의 다른 글
(C++, Rust) - 백준(BOJ) 25625 : 샤틀버스 (0) | 2022.09.19 |
---|---|
(C++, Rust) - 백준(BOJ) 25600 : Triathlon (0) | 2022.09.18 |
(C++, Rust) - 백준(BOJ) 15351 : 인생 점수 (0) | 2022.09.15 |
(C++, Rust) - 백준(BOJ) 23802 : 골뱅이 찍기 - 뒤집힌 ㄱ (0) | 2022.09.12 |
(C++, Rust) - 백준(BOJ) 22155 : Простая задача (0) | 2022.09.12 |