분류 전체보기
-
[Algorithm] 프로그래머스 C++ : 가장 큰 수Algorithm 2020. 8. 18. 18:36
https://programmers.co.kr/learn/courses/30/lessons/42746# 코딩테스트 연습 - 가장 큰 수 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 �� programmers.co.kr 원래는 next_permutation을 써서 전체 경우의 수에 대해 계산을 했는데 자꾸 실패가 떠서 사용자함수로 sort하는 방법을 알게 됐다 cmp함수를 만들어서 sort()에 넣어주면 된다 이 경우 두 숫자의 우위를 정하는 방법은 스트링두개를 합쳤을 때, 더 큰 수가 우위를 점하게 되는 ..
-
[Algorithm] 프로그래머스 C++ : K번째수Algorithm 2020. 8. 17. 15:31
https://programmers.co.kr/learn/courses/30/lessons/42748 코딩테스트 연습 - K번째수 [1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3] programmers.co.kr Level1 문제는 풀 때마다 즐겁다.. 빨리 풀려서.. (짱쉬우니까..) 암튼 그냥 문제 condition에 맞춰서 주어진 commands 명령들을 반복문으로 하나씩 돌면서 answer에 답을 추가해주면 된다. 벡터 index만 잘 맞춰서 리턴하면 되는 문제 Code #include #include #include #include using namespace std; vector solution(vector array, vec..
-
[Algorithm] 프로그래머스 C++ : 이중우선순위큐Algorithm 2020. 8. 15. 21:36
https://programmers.co.kr/learn/courses/30/lessons/42628# 코딩테스트 연습 - 이중우선순위큐 programmers.co.kr 이중우선순위큐는 그냥 두개의 우선순위큐를 오름차순, 내림차순으로 만들고 가상으로 관리한다. 두개를 똑같이 관리하면서 이중우선순위큐에 몇개의 원소가 남았는지 cnt에 저장해놓는다. (가상의 이중우선순위큐가 비어도 두개의 큐는 그냥 우선순위큐라서 비지 않으니까) "D 1"일 땐 최댓값 내림차순 우선순위큐에서 pop하고 cnt를 1 감소시키고 "D -1"일 땐 최솟값 오름차순 우선순위큐에서 pop하고 cnt를 1 감소시킨다. Code #include #include #include #include #include using namespace ..
-
[Algorithm] 프로그래머스 C++ : 디스크 컨트롤러Algorithm 2020. 8. 14. 23:48
https://programmers.co.kr/learn/courses/30/lessons/42627# 코딩테스트 연습 - 디스크 컨트롤러 하드디스크는 한 번에 하나의 작업만 수행할 수 있습니다. 디스크 컨트롤러를 구현하는 방법은 여러 가지가 있습니다. 가장 일반적인 방법은 요청이 들어온 순서대로 처리하는 것입니다. 예를�� programmers.co.kr " 매번 하나의 태스크가 완수될 때마다, 그 시간 안에 요청된 대기열들을 pq에 추가하고 현재 time이 증가한다." 라는 알고리즘은 설정을 했었는데, 코딩이 잘 안됐다. 반복문을 어떻게 해야 효율적으로 할 수 있는지 캐치를 못했는데 while 하나를 쓰고 제일 처음에 등장하는 if&continue로 불필요한 추가적인 반복문을 제외시킬 수 있다는 것을..
-
[Algorithm] 프로그래머스 C++ : 더 맵게Algorithm 2020. 8. 10. 16:27
https://programmers.co.kr/learn/courses/30/lessons/42626# 코딩테스트 연습 - 더 맵게 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같�� programmers.co.kr 우선순위큐 개념만 알면 쉽게 풀 수 있는 문제 pq는 우선순위큐이기 때문에 push를 하면 안에서 자동으로 오름차순으로 정렬되고 저장된다 그래서 그냥 도달해야하는 스코빌 지수가 될 때까지 while을 돌리면서 top값(우선순위큐의 맨 앞에 있는 값)을 만지면서 계산하고 새로운 스코빌 지수를 push해주면 된다 Code #include #incl..
-
[Algorithm] 프로그래머스 C++ : 프린터Algorithm 2020. 8. 9. 02:08
https://programmers.co.kr/learn/courses/30/lessons/42587# 코딩테스트 연습 - 프린터 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린�� programmers.co.kr 그냥 프린터의 인덱스를 스택에 넣고 조건에 맞게 push&pop하면 된다. (우선순위값은 priorities[index]이런 식으로 접근하여 비교) 초반에 몇개 놓쳤다가 다시 생각한게 우선순위가 높은 출력물이 출력이 된 이후(큐에서 pop된 이후)에 가장 큰 우선순위값을 다시 구해줘야 한다는 점! 그래서 while가지고 최댓값을 매번 pop 할 때마다 구해줬다..
-
[Algorithm] 프로그래머스 C++ : 다리를 지나는 트럭Algorithm 2020. 8. 7. 01:22
https://programmers.co.kr/learn/courses/30/lessons/42583# 코딩테스트 연습 - 다리를 지나는 트럭 트럭 여러 대가 강을 가로지르는 일 차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 트럭은 1초에 1만큼 움직이며, 다리 길이�� programmers.co.kr 되게 헤맸던 문제.. 그냥 봤을땐 쉬워보이는데 큐에 넣으면서 초를 세는게 헷갈린다. 첫번째 포인트는, while(1)을 해놓고 다리에 올라갈 수 없는 트럭이 나오면 그냥 0을 큐에 삽입해서 초가 증가할 수 있게 해주는 것! 두번째 포인트는, 다리에 올라갈 수 있는 트럭이 꽉 차서 큐의 맨 앞 트럭을 뺌과 동시에 다리에 올라가 있는 총 트럭의..
-
[Algorithm] 프로그래머스 C++ : 기능개발Algorithm 2020. 8. 6. 01:08
https://programmers.co.kr/learn/courses/30/lessons/42586# 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 �� programmers.co.kr 먼저, 첫번째 for문에서 각 기능들이 며칠만에 개발이 되는지 계산하여 days 벡터에 넣어준다. 그리고 일단 첫번째 기능 개발 시간은 비교 대상이 없으니 그냥 큐에 넣는다. 이후 days 요소들을 하나씩 보면서 만약 큐의 front() 값보다 작다면, 첫번째 기능과 함께 배포될 수 있으므로 큐에 삽입한다. 만약 큐의 front() 값보다 크면 함..