본문 바로가기

c++/프로그래머스

(29)
프로그래머스 : 단속카메라 C++ programmers.co.kr/learn/courses/30/lessons/42884# 코딩테스트 연습 - 단속카메라 [[-20,15], [-14,-5], [-18,-13], [-5,-3]] 2 programmers.co.kr 풀이 1. 일단 시작지점을 오른차순으로 정렬한다! -> 최소점이랑 비교해가면서 차근차근 겹치는 여부 판단하면 된다 2. while 문을 만들고 탈출 조건은 모든 자동차를 감시한 상태! -> visited[i] ==1 이라는건 3. 아직 감시 안된 자동차의 경우 -> 출발점이 기존 최소값 이상, 최대값 이하일때 -> 도착점이 기존 최대값 이하, 최솟값 이상일떄 업데이트 하곻 visited 처리 4. 루프 한번 돌때마다 answer++ #include #include #include..
프로그래머스 : 섬 연결하기 C++ programmers.co.kr/learn/courses/30/lessons/42861# 코딩테스트 연습 - 섬 연결하기 4 [[0,1,1],[0,2,2],[1,2,5],[1,3,1],[2,3,8]] 4 programmers.co.kr 후기 1. 유니온 파인드, 크루스칼 처음 써봤는데 진짜 개꿀인거같다. 더 연습해야징 풀이 1. 유니온 파인드 함수들 미리 만들어 둔다 1) getParent : 재귀함수로 루트 찾기, 루트는 젤 작은 숫자로 할거임 2) connect : 부모를 통일시키면 사실상 연결된거 : 아까 위에서 말했듯이 작은 숫자가 루트니까 둘중 더 작은 부모로 통일 시킴 2. 미리 가격 싼순으로 sort 해둔다! #include #include #include using namespace std..
프로그래머스 : 디스크 컨트롤러 c++ programmers.co.kr/learn/courses/30/lessons/42627 코딩테스트 연습 - 디스크 컨트롤러 하드디스크는 한 번에 하나의 작업만 수행할 수 있습니다. 디스크 컨트롤러를 구현하는 방법은 여러 가지가 있습니다. 가장 일반적인 방법은 요청이 들어온 순서대로 처리하는 것입니다. 예를 programmers.co.kr 풀이 1. 기본 프로세스 -> 현재 작동중인게 끝나기 전에 들어오는 작업이 있으면 몽땅 queue에다가 다 넣는다 -> queue는 priority_queue로 조건은 작업시간 짧은게 빨리 나오게!! : priority queue는 내림차순으로 뽑고 싶으면 이더라 !!!! 원래 기존 sort할때 조건은 가 내림차순이였는데 헷갈림!! -> 다 넣었으면 이제 순서대로 작동 ..
프로그래머스 : 더 맵게 c++ programmers.co.kr/learn/courses/30/lessons/42626 코딩테스트 연습 - 더 맵게 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같 programmers.co.kr 풀이 1. 우선순위 큐를 쓰면 굉장히 쉽게 쓰지만 이게 안떠올랐다면 굉장히 고생한다 2. 기본 while문이지만 조건이 조금 특이함 -> 두개를 뽑아서 써야되므로 size가 2 이상일때만! -> 젤 작은거도 K를 넘는다면 스톱 #include #include #include #include using namespace std; int solution(vector ..
프로그래머스 : 프린터 c++ programmers.co.kr/learn/courses/30/lessons/42587 코딩테스트 연습 - 프린터 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린 programmers.co.kr 풀이 및 후기 1. 처음에 while문 안에서 priorities 벡터 다 탐색하는 방식을 썻는데 시간초과! 2. a라는 우선순위 오른차순 벡터를 만들어서 쓸거임 -> answer를 index 처럼 쓰면서 뽑아도 되는 값인지 판단! 3. 뽑을 수 없는거면 대기목록 가장 맨뒤에 넣는거니까 queue 사용 4. 가장 높은 우선순위 값이 나왔으면 일단 뽑고, 내가 원하는 것인 경우 b..
프로그래머스 : 다리를 지나는 트럭 C++ programmers.co.kr/learn/courses/30/lessons/42583 코딩테스트 연습 - 다리를 지나는 트럭 트럭 여러 대가 강을 가로지르는 일 차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 트럭은 1초에 1만큼 움직이며, 다리 길이 programmers.co.kr 풀이 1. 다리 자체를 queue로 관리한다!! ex) 트럭 길이는 다 1이고 1초마다 1씩 움직이니까 -> 트럭이 안들어가면 0 삽입 -> 트럭이 들어가면 트럭 무게 삽입 2. 다리 위에 올라가 있는 트럭 무게 총합을 on_bridge로 관리! 3. 기본 for문은 truck 갯수 1) while 루프문 돌리면서 트럭이 다리에 들어갈때까지 반복 - 트럭이 들..
프로그래머스 : 기능개발 c++ programmers.co.kr/learn/courses/30/lessons/42586?language=cpp 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr #include #include using namespace std; vector solution(vector progresses, vector speeds) { vector answer; queue a; int left, data, result=0; for(int i=0;i
프로그래머스 : 베스트앨범 C++ programmers.co.kr/learn/courses/30/lessons/42579 코딩테스트 연습 - 베스트앨범 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 programmers.co.kr 풀이 1) 장르당 총 재생횟수를 구하자, genre랑 play의 크기는 동일함 2) map을 value값에 대해 정리하려면 벡터에 옮겨야된다!! -> key값에 대해 정렬하려면 map a; 선언할때 이렇게 3) 옮겼으면 정렬 4) 이제 1등. 2등 두개를 play 벡터를 탐색하면서 정하기 5) 장르에 속한 노래가 한곡인 경우도 있으니 예외처리! 코드 #include #inc..