[프로그래머스] 실패율(C++)

2025. 10. 28. 16:49·개발/알고리즘
728x90

문제 링크

https://school.programmers.co.kr/learn/courses/30/lessons/42889

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

 

코드 구현

#include <iostream>
#include <string>
#include <vector>
#include <algorithm>

using namespace std;

bool compare(const pair<int, float>& a, const pair<int, float>& b)
{
    if (a.second == b.second)
        return a.first < b.first;

    return a.second > b.second;
}

vector<int> solution(int N, vector<int> stages)
{
    vector<int> answer;
    vector<float> challenger(N + 2, 0.0);
    vector<float> fail(N + 2, 0.0);

    // vector<int> stages = { 2, 1, 2, 6, 2, 4, 3, 3 }; 
    for (int i = 0; i < stages.size(); i++)
    {
        for (int j = 1; j <= stages[i]; j++)
            challenger[j]++;

        fail[stages[i]]++;
    }

    vector<pair<int, float>> failRatio(N);

    for (int i = 0; i < N; i++)
    {
        float failRate = fail[i + 1] / challenger[i + 1];

        failRatio[i].first = i + 1;

        if (challenger[i + 1] == 0)
            failRatio[i].second = 0;
        else
            failRatio[i].second = failRate;
    }

    sort(failRatio.begin(), failRatio.end(), compare);

    for (int i = 0; i < N; i++)
        answer.push_back(failRatio[i].first);

    return answer;
}

 

 

해결 방법

스테이지에 도달한 플레이어의 수와 도달했지만 클리어하지 못한 플레이어의 수를 각각 벡터에 구한 후, pair<int, float> 을 담고있는 벡터를 이용하여 <스테이지, 실패율> 로 저장한다. 

따로 구현한 compare 함수를 이용하여 정렬을 하고 스테이지를 반환하였다.

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

[프로그래머스] 배달(C++)  (0) 2025.10.27
[프로그래머스] 땅따먹기(C++)  (0) 2025.09.03
[프로그래머스] 양과 늑대(C++)  (0) 2025.08.21
[프로그래머스] 최적의 행렬 곱셈(C++)  (0) 2025.07.14
[백준] 2473번: 세 용액(C++)  (1) 2025.07.08
'개발/알고리즘' 카테고리의 다른 글
  • [프로그래머스] 배달(C++)
  • [프로그래머스] 땅따먹기(C++)
  • [프로그래머스] 양과 늑대(C++)
  • [프로그래머스] 최적의 행렬 곱셈(C++)
Majangnan
Majangnan
  • Majangnan
    개발 모코코
    Majangnan
  • 전체
    오늘
    어제
    • 분류 전체보기 (81)
      • 개발 (80)
        • C# (10)
        • SQL (3)
        • Unity (9)
        • Unreal (10)
        • C++ (3)
        • Server (1)
        • DX11 (8)
        • 알고리즘 (35)
  • 블로그 메뉴

    • 홈
    • 방명록
    • 깃허브
  • 링크

    • 백준 허브
  • 공지사항

  • 인기 글

  • 태그

    Mecanim
    dx3d
    blueprint
    알고리즘
    c++
    언리얼
    상속
    C#
    DirectX11
    슈팅게임
    Unity
    sql
    프로그래머스
    백준
    블루프린트
    3dlight
    DX11
    MAC
    UnReal
    코딩테스트
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Majangnan
[프로그래머스] 실패율(C++)
상단으로

티스토리툴바