GitHubSeob

C++ / 프로그래머스 / 푸드 파이트 대회 본문

Programmers/Level 1

C++ / 프로그래머스 / 푸드 파이트 대회

GitHubSeob 2023. 6. 24.

문제

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

 

프로그래머스

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

programmers.co.kr

문제풀이

물을 제외하고 짝수개의 음식만큼만 대회에 사용할 수 있다.

food를 탐색하면서 홀수인 경우 하나를 빼고 절반으로 나눈다.

절반으로 나눈 개수만큼 answer에 음식 번호를 채운다.

 

for문이 종료되면 answer을 rev에 복사하고, reverser를 이용해 뒤집는다.

answer에 물인 0을 더하고, 뒤집은 rev까지 더하면 된다. 

 

코드

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

string solution(vector<int> food) {
    string answer(""), rev("");
    int sum(0), idx(0);
    for (idx = 1; idx < food.size(); ++idx) {
        if (food[idx] % 2 == 1) {
            food[idx] -= 1;
        }
        food[idx] /= 2;
        while (food[idx]--) {
            answer += (idx + '0');
        }
    }
    rev = answer;
    reverse(rev.begin(), rev.end());
    answer += '0';
    answer += rev;

    return answer;
}