코딩 문제 사이트 중에 백준 vs 프로그래머스를 고민하다
대기업들은 대부분 프로그래머스를 통해 코딩 테스트를 진행한다고 하여
프로그래머스를 사용하기로 했다.
https://programmers.co.kr/learn/courses/30/parts/12081
프로그래머스 기능개발 문제 링크
사실 문제 푸는데 2시간이나 걸렸다. (2레벨 문제도 힘든데 4~5레벨은 괴물들이 푸는 것일까?)
코드마다 주석이 있기에 별도의 설명은 생략하겠다.
#include <string>
#include <vector>
using namespace std;
vector<int> solution(vector<int> progresses, vector<int> speeds) { // 배포순서, 개발속도
vector<int> answer; // 배포마다 몇개의 기능이 추가되는지 push
while (1)
{
int key = 0;
int max_size = progresses.size();
int *arr = new int [max_size](); // progresses + speeds 저장 리스트
for (int i = 0; i < max_size; i++) // 1일(i)이 지날때마다 리스트 데이터 값 증가
arr[i] = progresses[i];
while (1)
{
for (int i = 0; i < max_size; i++) // 1일(i)이 지날때마다 리스트 데이터 값 증가
arr[i] += speeds[i];
if (arr[0] >= 100) // 첫번째 인덱스가 100 이상이면 push
{
int count = 0;
for (int i = 0; i < max_size; i++)
{
if (arr[i] >= 100) // 진도율 100이상이 아닐때까지 루프
{
count++;
continue;
}
else
break;
}
answer.push_back(count);
progresses.erase(progresses.begin(), progresses.begin() + count);
speeds.erase(speeds.begin(), speeds.begin() + count);
if (progresses.size() == 0)
return answer;
key = 1;
break;
}
if (key == 1)
break;
}
delete[] arr;
}
}
타인이 짠 코드를 보니 10줄 정도의 for문으로 해결한 사람도 존재했다. (그것도 12명이나..)
나는 왜 저렇게 못짰는지 반성하며 다음 문제를 풀어보겠다.