백준 7568번, 언어 : C/C++

2021. 7. 5. 18:01· 알고리즘/알고리즘
목차
  1. 문제
  2. 입력
  3. 출력
반응형

 

 

문제 링크 : https://www.acmicpc.net/problem/7568

 

7568번: 덩치

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

www.acmicpc.net

문제

우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩치가 각각 (x, y), (p, q)라고 할 때 x > p 그리고 y > q 이라면 우리는 A의 덩치가 B의 덩치보다 "더 크다"고 말한다. 예를 들어 어떤 A, B 두 사람의 덩치가 각각 (56, 177), (45, 165) 라고 한다면 A의 덩치가 B보다 큰 셈이 된다. 그런데 서로 다른 덩치끼리 크기를 정할 수 없는 경우도 있다. 예를 들어 두 사람 C와 D의 덩치가 각각 (45, 181), (55, 173)이라면 몸무게는 D가 C보다 더 무겁고, 키는 C가 더 크므로, "덩치"로만 볼 때 C와 D는 누구도 상대방보다 더 크다고 말할 수 없다.

N명의 집단에서 각 사람의 덩치 등수는 자신보다 더 "큰 덩치"의 사람의 수로 정해진다. 만일 자신보다 더 큰 덩치의 사람이 k명이라면 그 사람의 덩치 등수는 k+1이 된다. 

입력

첫 줄에는 전체 사람의 수 N이 주어진다. 그리고 이어지는 N개의 줄에는 각 사람의 몸무게와 키를 나타내는 양의 정수 x와 y가 하나의 공백을 두고 각각 나타난다.

출력

여러분은 입력에 나열된 사람의 덩치 등수를 구해서 그 순서대로 첫 줄에 출력해야 한다. 단, 각 덩치 등수는 공백문자로 분리되어야 한다.


접근방식

 

복잡하게 생각안하고 그냥 간단하게 생각했다.
한 쌍의 데이터를 입력받아야 하므로, C++의 pair와 Vector를 이용해서 입력받은 데이터를 처리했다.
그 후에, 각 쌍에 대한 데이터를 하나씩 비교한 다음, 순위를 별도의 배열을 선언해서 저장했다.

 

코드

#include<iostream>
#include<vector>

using namespace std;
typedef pair<int, int> p;

void compare(vector<p> v,int grade[])
{
	int count;
	for (int i = 0; i < v.size(); i++){
		count = 1;

		for (int j = 0; j < v.size(); j++){
		
			if (j == i) continue;
			if ((v[i].first < v[j].first) &&
				(v[i].second < v[j].second)) {
				count += 1;
			}
		}
		grade[i] = count;
	}
}

int main()
{
	vector<p> arr;
	int N;
	int w, h;
	cin >> N;
	int* grade = new int[N];

	for (int i = 0; i < N; i++)
	{
		cin >> w >> h;
		arr.push_back(make_pair(w, h));
	}
	compare(arr, grade);
	
	for (int i = 0; i < N; i++)
	{
		cout << grade[i] << ' ';
	}
	cout << '\n';

	delete []grade;

	return 0;
}

 

다른 문제의 코드 : https://github.com/DaeeYong/Algorithm-Solution-

 

DaeeYong/Algorithm-Solution-

Solution for Algorithm Problem. Contribute to DaeeYong/Algorithm-Solution- development by creating an account on GitHub.

github.com

 

반응형

'알고리즘 > 알고리즘' 카테고리의 다른 글

[leetcode/C]리트코드 - 141번  (0) 2021.07.15
[C/C++]프로그래머스 소수 만들기  (0) 2021.07.13
[C/C++]탐욕 알고리즘(그리디 알고리즘) - greedy algorithm  (0) 2021.05.24
  1. 문제
  2. 입력
  3. 출력
'알고리즘/알고리즘' 카테고리의 다른 글
  • [leetcode/C]리트코드 - 141번
  • [C/C++]프로그래머스 소수 만들기
  • [C/C++]탐욕 알고리즘(그리디 알고리즘) - greedy algorithm
ya_ya
ya_ya
주제 상관없이 작성하고 싶은 글들을 작성합니다.
반응형
ya_ya
기록노트
ya_ya
전체
오늘
어제
  • 목록 (90)
    • IT제품리뷰 (2)
    • 컴퓨터 (30)
      • 웹 애플리케이션 (3)
      • 잡지식 (6)
      • 암호학 (1)
      • 자료구조 (3)
      • C\C++ (5)
      • 컴퓨터 구조 (1)
      • 영상처리 (0)
      • 컴퓨터네트워크 (0)
      • learnopengl 번역 (3)
      • 컴퓨터그래픽스 (6)
      • CMake (0)
      • 짧은 지식 (1)
    • 알고리즘 (34)
      • 백준 문제풀이 (30)
      • 알고리즘 (4)
    • 일상이야기 (24)
      • 술 (1)
      • 게임후기 (1)
      • 아무거나 (16)
      • 프라모델 (4)
      • 운동일지 (0)
      • 책리뷰 (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
ya_ya
백준 7568번, 언어 : C/C++
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.