PS/Programmers

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 구명보트에 최대 2명만 탈 수 있다는 조건 덕분에 그리디를 잘 못 푸는 나도 빠르게 해결할 수 있었다. 구명보트 수를 줄이고 싶다면 최대한 2명씩 묶어서 탈출시켜야 한다. 무거운 사람을 최대한 가벼운 사람들과 매칭시키면 무거운 사람이 혼자 타서 탈출하는 경우를 줄일 수 있을 것이라 생각했다. 몸무게 오름차순으로 정렬한 후, 양 끝을 나타내는 인덱스(left, right)를 만들고 좁혀가며 보트의 수를 세자. 두 사람의 몸무게 합이 제한보다 크다면 무거운 사람이 혼자 타도록 하고 right만 감소시키자. 제한보..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 마지막의 '나머지 논문이 h번 이하 인용 되었다면'에서 정렬을 생각했다. 그럼 h번 이상 인용된 논문이 몇 편인지는 어떻게 구할까? 나는 lower_bound를 통해 구했다. citations.end() - lower_bound(citations.begin(), citations.end(), h)를 통해 h번 이상 인용된 논문의 수를 구할 수 있다. 코드 #include #include #include using namespace std; int solution(vector citations) { int an..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr DFS로 하나의 네트워크에 속하는 컴퓨터를 모두 방문할 수 있으니, DFS를 수행한 횟수가 정답이 된다 코드 #include #include using namespace std; bool visited[201]; vector graph[201]; void dfs(int cur) { for (int next : graph[cur]) { if (visited[next]) { continue; } visited[next] = true; dfs(next); } } int solution(int n, vector co..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음엔 문제를 잘못 이해했었다;; 현재 처리하지 않고 남아 있는 프로세스들의 우선순위를 담을 우선순위 큐 하나만 있으면 해결가능했다. 1. 우선순위들을 모두 우선순위 큐에 넣는다. 2. 우선순위 큐가 비거나 찾으려는 프로세스가 처리되면 끝내도록 하고 while문을 돈다. 2-1. 인덱스를 하나씩 증가시키며 현재 프로세스의 우선순위가 우선순위 큐의 top과 같은지 비교한다. 2-2. 같다면 우선순위 큐에서 우선순위를 pop 하고, 정답에 1을 더해준다. (해당 인덱스가 찾고자 하는 프로세스의 인덱스라면 종료) ..
닉네임정하기쉽지않음
'PS/Programmers' 카테고리의 글 목록 (2 Page)