본문 바로가기

Algorithm/Implementation

(C++) - 백준(BOJ) 15923 : 욱제는 건축왕이야!!

반응형

https://www.acmicpc.net/problem/15923

 

15923번: 욱제는 건축왕이야!!

건축학개론을 수강한 욱제는 선린의 매점 앞에 지어질 새로운 건물의 설계를 맡았다. 욱제는 건축학개론 수업에서 수지를 만나 행복하지만, C-를 받을 정도로 건축에 소질이 없다. 컴퓨터학부에

www.acmicpc.net

간단 구현 문제였습니다.

📕 풀이방법

📔 입력 및 초기화

좌표 구조체 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;
}

*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.