1. 목표
A. 프로그래머스 코테 문제 2단계 6문제 풀기
2. 프로그래머스 코테 문제 2단계 6문제
- 프린터
- 124 나라의 숫자
- 문자열 압축
- 카카오프렌즈 컬러링북
- 가장 큰 수
- 괄호 변환
A. 프린터
#include <string>
#include <vector>
using namespace std;
int check(int int_tmp, vector<int> priorities)
{
for (int i = 0; i < priorities.size(); i++)
{
if (priorities[i] > int_tmp)
return (0);
}
return (1);
}
int solution(vector<int> priorities, int location) {
int answer = 0;
vector<int> print;
int i = 0;
int int_tmp = location;
int tmp;
while (1)
{
if (check(priorities[0], priorities) == 1)
{
if (int_tmp == 0)
break;
print.push_back(priorities[0]);
priorities.erase(priorities.begin());
}
else
{
if (int_tmp == 0)
int_tmp = priorities.size();
tmp = priorities[0];
priorities.push_back(tmp);
priorities.erase(priorities.begin());
}
int_tmp--;
}
answer = print.size() + 1;
return answer;
}
- 매개변수로 입력된 int보다 큰 값이 입력된 int형 vector 안에 있는지 확인하는 함수 check를 임의로 선언한다.
- 무한으로 돌아가는 while문안에서 priorities vector안에 정렬된 목록이 우선순위대로 프린트 될 수 있도록 해야 한다.
- priorities vector 안에 우선순위가 더 큰 값이 없고 그에 해당하는 인덱스가 location으로 입력된 인덱스일 경우, while문을 빠져나와서 출력물 목록인 print의 size에 1만큼 더한 값을 answer로 return 한다.
- 그에 해당하는 인덱스가 location이 아닐 경우, print vector에 해당하는 값을 push_back 하고 priorities 목록에서 제외시킨다.
- priorities vector 안에 우선순위가 더 큰 값이 있고 그에 해당하는 인덱스가 location으로 입력된 인덱스일 경우, int_tmp를 priorities의 크기로 새로 갱신해준다. 그리고 그에 해당하는 값을 priorities vector의 뒤로 넣어준다.
B. 124 나라의 숫자
C. 문자열 압축
D. 카카오프렌즈 컬러링북
E. 가장 큰 수
F. 괄호 변환