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 |