본문 바로가기
언리얼(Unreal)/코딩테스트

25.02.17 코딩테스트

by alwaysyoung2 2025. 2. 17.
728x90
반응형

문제를 보고 처음 든 생각은 food를 짝수인지 홀수인지 나눠서 짝수면 그냥 앞뒤로 하나씩 넣어주고 홀수면 -1해주고 앞뒤로 하나씩 넣어주면 되겠다 생각했다. 하지만 가장 칼로리가 낮은게 끝과끝에 와야하니 for문을 뒤부터 돌려줘야겠네 생각했다. 물론 차차 진행하다보니 가운데 0도 넣어야하므로 left와 right를 따로 넣고 나중에 합치면 되겠다 생각했다.

 

#include <string>
#include <vector>

using namespace std;

string solution(vector<int> food) {
    string left = "", right = "";
    
    for (int i = food.size() - 1; i > 0; --i) {
        int count = food[i] / 2; // 짝수 개수만큼 사용
        string temp(count, '0' + i); // 숫자를 문자로 변환하여 count만큼 추가
        
        left = temp + left;  // 왼쪽에 추가
        right += temp;       // 오른쪽에 추가
    }
    
    return left + "0" + right;
}

최종 코드이다. 하다보니 하나씩 앞뒤로 넣어주기보다는 2를 나눈 몫만큼 추가해주면 되는구나 싶었다.

 

 

728x90
반응형

'언리얼(Unreal) > 코딩테스트' 카테고리의 다른 글

25.03.10 코드카타  (0) 2025.03.10
25.02.20 코드카타  (0) 2025.02.20
25.02.19 코딩테스트  (0) 2025.02.19
24.12.19  (1) 2024.12.19
24.12.17  (1) 2024.12.17