●문제


●간단한 설명
string answer, vector<int> food값
food의 0번 인덱스는 물 상시 한개
결과값의 제일 중앙 인덱스에 "0" 이 있어야함
왼쪽과 오른쪽의 배치는 순서만 바꿔서 인덱스의 갯수와 같이 배치되어야함
●내가 푼 방법
for문을 통해서 1부터 food.size()까지 돌리고
왼쪽string, 우측string 선언
food[i] / 2 를 해서 왼쪽 선수가 받을수있는 음식의 갯수를 구합니다
2중for문을 사용 음식의 갯수만큼 돌린다음
왼쪽String에 들어갈 문자열을 구합니다
Algorith헤더를 추가한뒤 Reverse함수를 사용하여 왼쪽String의 값을 뒤집습니다
왼쪽String + "0" + 오른쪽String으로 값을 도출
●알아야하는 개념 / 알게된 개념
2중for문을 돌릴때 두번째 for문에서 더해야하는값은 to_string(j)가 아닌 to_string(i)
Reverse함수의 사용
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
string solution(vector<int> food) {
string answer = "";
string leftS = "";
string rightS = "";
for (int i = 1; i < food.size(); i++)
{
int count = food[i] / 2;
for (int j = 0; j < count; j++)
{
leftS += to_string(i);
}
}
rightS = leftS;
reverse(rightS.begin(), rightS.end());
answer = leftS + "0" + rightS;
return answer;
}
1600점의 언덕은 쉽지않다

'C++ 프로그래머스 > 기타 문제' 카테고리의 다른 글
| 프로그래머스(C++) - 숫자의 표현 (0) | 2025.08.01 |
|---|---|
| 프로그래머스(C++) - JadenCase 문자열 만들기 (0) | 2025.08.01 |
| 프로그래머스(C++) - 콜라 문제 (0) | 2025.05.13 |
| 프로그래머스(C++) - 숫자 문자열과 영단어 (0) | 2025.05.07 |
| 프로그래머스(C++) - 시저 함수 (0) | 2025.05.07 |
