전체 글 38

programmers 프로세스

programmerslevel2 프로세스문제 설명#include #include #include #include using namespace std;int solution(vector priorities, int location) { int answer = 0; deque pri_que; deque> que; for(int i = 0; i 해결 과정priority queue를 구현하기 위해 우선순위만을 기록한 큐를 추가로 생성하였고, 우선순위와 처음에 주어진 벡터 내에서의 위치를 짝으로 큐를 생성하였다. 메모리를 좀 더 사용하지만 시간 복잡도 측면에서는 꽤나 유리하다고 생각해서 해당 방법으로 해결했다. 우선순위만을 기록한 큐에서는 정렬을 하여주었고 짝으로 이루어진 큐를 while문에..

programmers 할인 행사

programmerslevel2 할인 행사문제 설명위 이미지를 클릭하면 해당 문제로 이동합니다.#include #include #include using namespace std;int solution(vector want, vector number, vector discount) { int answer = 0; unordered_map search_map; for(int i = 0; i possible(want.size(), 0); //할인하는 날 중 원하는 과일 각각의 수를 기록하는 배열 for(int j = i; j second]++; } if(possible==number) answer++; //원하던 과일의 개수와 일치하면 증가연산자 ..

programmers H-Index

programmerslevel2 H-Index문제 설명위 이미지 클릭하면 해당 문제로 이동합니다#include #include #include using namespace std;int solution(vector citations) { int answer = 0, flag=0; sort(citations.begin(), citations.end()); int h = min(citations[0], int(citations.size())); //[10,10,10] 인 경우 해결 while(flag==0){ int temp = 0; for(int i : citations) if(i>=h) temp++; //h보다 많이 인용된 논문 개수 파악 if(..

programmers 행렬의 곱셈

programmerslevel2 행렬의 곱셈문제 설명위 이미지를 클릭하면 해당 문제로 이동합니다.#include #include using namespace std;vector> solution(vector> arr1, vector> arr2) { vector> answer(arr1.size()); for(int i = 0; i 해결 과정처음에 문제를 보고 두 행렬의 같은 인덱스의 각 항끼리의 곱을 새로운 배열에 저장하여 행렬의 곱을 계산할 때 사용하려고 했었다. 해당 방법으로 해결하였는 데, 생각보다 메모리 사용량과 시간이 오래 소용되어서 다시 생각해보니 굳이 곱의 값을 배열에 저장할 필요가 없다는 것을 알았다. 위의 코드는 배열에 새로이 저장하지 않고 바로바로 사용하는 코드이다. 확연하게 ..

programmers 귤 고르기

programmerslevel2 귤 고르기문제 설명위 이미지를 클릭하면 해당 문제로 이동합니다.#include #include #include using namespace std;int solution(int k, vector tangerine) { int answer = 0, temp = 0, j = 0; vector tng_count(10000000,0); for(int i : tangerine){ tng_count[i-1]++; } sort(tng_count.begin(), tng_count.end(), greater()); while(temp해결 과정귤의 개수를 세고 정렬한 뒤에 원하는 숫자 이상이 될 때까지 더해주면 간단하게 해결할 수 있는 문제였다..