새소식

코딩테스트/백준_실버

[C++][백준 7568] 덩치

  • -

[문제]

7568번: 덩치 (acmicpc.net)

 

7568번: 덩치

우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩

www.acmicpc.net

[문제 풀이]

배열을 만들어둔뒤 해당 위치에서 처음부터 끝까지 배열을 순회하면서 몇개가 해당 위치보다 더 큰값이 있는지 파악하자. 완탐으로 반복문 2개면 간단하게 끝나는 문제.

[회고]

처음엔 배열을 복사한뒤에 sort를 해서 어디 위치에 있는지 파악할려고 했는데 해당 코드로는 오류가 발생하였다.

로직 구현상 조건을 만족하는 if문 쪽에서 똑같은 숫자가 생길때 문제가 발생했던 것 같음. 

[코드]

#include <iostream> #include <vector> #include <algorithm> #define endl "\n" using namespace std; int n; int main(){ cin>>n; vector<int> result; vector<pair<int, int> > height(n, pair<int,int>()); for(int i = 0;i<n;i++){ cin>>height[i].first>>height[i].second; } int answer = 0; for(int i = 0;i<n;i++){ int x,y; x = height[i].first; y = height[i].second; for(int j = 0;j<n;j++){ if(x < height[j].first && y < height[j].second){ answer++; } } result.push_back(answer + 1); answer = 0; } cout<<result[0]; for(int i = 1;i<result.size();i++){ cout<<" "<<result[i]; } cout<<endl; return 0; }

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.