Deff_Dev

[프로그래머스] 푸드 파이트 대회 (C++) 본문

코딩테스트/프로그래머스

[프로그래머스] 푸드 파이트 대회 (C++)

Deff_a 2024. 3. 13. 18:41
 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

문제

 

이 문제는 한 선수가 먹는 음식 순서를 먼저 구하고 해당 순서를 내림차순 정렬하여 다른 선수의 음식 순서를 구합니다.

그리고 두 선수의 음식 순서를 가운데 물(0) 기준으로 양 옆에 배치한다.

 

풀이

#include <string>
#include <vector>
#include <algorithm>
using namespace std;

// https://school.programmers.co.kr/learn/courses/30/lessons/134240
bool cmp (char a, char b){
    return a > b;
}
string solution(vector<int> food) {
    string answer = "", person01 = "",person02 = "";
    
    // 한 선수가 먹는 음식의 순서를 구한다.
    for(int i = 1; i< food.size(); i++){        
        for(int j = 0; j < food[i] / 2 ; j++){
            person01 += to_string(i);
        }
    }
    // 내림차순 정렬하여 다른 선수의 음식 순서를 구한다.
    person02 = person01;   
    sort(person02.begin(), person02.end(), cmp);    
    // 두 선수의 음식 순서를 가운데 물(0) 기준으로 양 옆에 배치한다.
    answer += person01 + "0" + person02;
 
    return answer;
}