본문 바로가기

BAEKJOON/브루트포스

백준 7568번 [덩치](C++)-yes6686- 티스토리

728x90
SMALL

백준 문제 풀이: 7568 [덩치]


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

문제 설명:

각 사람의 몸무게와 키를 기준으로 덩치를 비교하여, 자신보다 "덩치가 큰" 사람이 몇 명인지 계산하는 문제입니다. 덩치는 다음 조건을 만족할 때 "큰" 것으로 간주합니다:

  • 몸무게가 더 크고, 키가 더 크다.

같은 덩치를 가진 사람이 여러 명이라도, 각 사람의 등수는 유일합니다.


문제 해결 코드


#include <iostream>
using namespace std;

struct student {
    int weight;
    int height;
};

int main() {
    int n;
    cin >> n;
    student k[51];
    int cnt = 1;

    for (int i = 0; i < n; i++) {
        cin >> k[i].weight >> k[i].height;
    }

    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            if (k[i].weight < k[j].weight && k[i].height < k[j].height) {
                cnt++;
            }
        }
        cout << cnt << ' ';
        cnt = 1;
    }
}

코드 설명

  • 핵심 알고리즘: 이중 반복문을 사용하여 모든 학생의 몸무게와 키를 비교
  • 구현 세부사항:
    • 각 학생의 몸무게와 키를 구조체 student 배열에 저장
    • 학생 i와 다른 모든 학생 j를 비교하여, 덩치가 큰 경우 카운트를 증가
    • 카운트를 출력하고 초기화
  • 시간 복잡도: O(n2)
    • 이중 반복문으로 학생 수만큼 비교

결과

입력된 각 학생의 몸무게와 키를 비교하여 자신의 등수를 출력합니다.

다른 접근 방식이나 개선 사항이 있다면 댓글로 공유 부탁드립니다!

728x90
LIST