알고리즘
[프로그래머스] PCCP 기출 3번 / 충돌위험 찾기 (Java)
문제 - 충돌위험 찾기(Level 2)문제 설명 어떤 물류 센터는 로봇을 이용한 자동 운송 시스템을 운영합니다. 운송 시스템이 작동하는 규칙은 다음과 같습니다. 1. 물류 센터에는 (r, c)와 같이 2차원 좌표로 나타낼 수 있는 n개의 포인트가 존재합니다. 각 포인트는 1~n까지의 서로 다른 번호를 가집니다. 2. 로봇마다 정해진 운송 경로가 존재합니다. 운송 경로는 m개의 포인트로 구성되고 로봇은 첫 포인트에서 시작해 할당된 포인트를 순서대로 방문합니다. 3. 운송 시스템에 사용되는 로봇은 x대이고, 모든 로봇은 0초에 동시에 출발합니다. 로봇은 1초마다 r 좌표와 c 좌표 중 하나가 1만큼 감소하거나 증가한 좌표로 이동할 수 있습니다. 4. 다음 포인트로 이동할 때는 항상 최단 경로로 이동하며 최단..
[프로그래머스] PCCP 기출 2번 / 퍼즐 게임 챌린지 (Java)
문제 - 퍼즐 게임 챌린지(Level 2)문제 설명 당신은 순서대로 n개의 퍼즐을 제한 시간 내에 풀어야 하는 퍼즐 게임을 하고 있습니다. 각 퍼즐은 난이도와 소요 시간이 정해져 있습니다. 당신의 숙련도에 따라 퍼즐을 풀 때 틀리는 횟수가 바뀌게 됩니다. 현재 퍼즐의 난이도를 diff, 현재 퍼즐의 소요 시간을 time_cur, 이전 퍼즐의 소요 시간을 time_prev, 당신의 숙련도를 level이라 하면, 게임은 다음과 같이 진행됩니다.diff ≤ level이면 퍼즐을 틀리지 않고 time_cur만큼의 시간을 사용하여 해결합니다.diff > level이면, 퍼즐을 총 diff - level번 틀립니다. 퍼즐을 틀릴 때마다, time_cur만큼의 시간을 사용하며, 추가로 time_prev만큼의 시간을 ..
[소프티어] 함께하는 효도 (자바)
문제 - 함께하는 효도(★★★☆☆) Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai 풀이한 방법 - DFS를 이용해 각 친구마다 갈 수 있는 모든 경로를 구한다. - 모든 친구의 경로 조합을 구하고, 이를 이용하여 최대 열매 수확량을 구한다. 처음 문제를 봤을 때 간단한 DFS 문제인 줄 알고 각 친구 마다 열매 수확량의 최대 값을 구하고 이 값을 다 더하는 방식으로 구현하였는데, 풀고 보니 각 친구의 최대 값이 모든 친구의 수확량이 최대가 되는 값이 되지는 않다는 걸 깨달았다. 그래서 모든 경로를 탐색하고 그 중 최대 값을 반환하도록 코드를 수정했다. 코드 import java.io.*; import java.util.*; public class Main { public stati..
[소프티어] 업무처리 (파이썬)
문제 - 업무처리 (★★★☆☆) Softeer 연습문제를 담을 Set을 선택해주세요. 취소 확인 softeer.ai - 업무 조직도는 완전 이진트리 모양이다. - 트리의 높이는 H, 말단에 대기하는 업무의 개수는 K, 업무가 진행되는 날짜 수는 R이다. - 각 업무는 번호가 있다. 아래는 H = 1, K = 3인 조직도이다. - 말단 직원들은 각각 K개의 순서가 정해진 업무를 가지고, 업무는 R일 동안 진행된다. - 말단 직원은 업무를 하나씩 처리해서 상사에게 올리고, 다른 직원들도 마찬가지이다. - 부하 직원에게 받은 업무는 다음 날에 처리하여 상사에게 올릴 수 있다. 즉, 당일 처리 X - 이 때, 홀수 번째 날에는 왼쪽 부하가 올린 업무를, 짝수 번째 날에는 오른쪽 부하가 올린 업무만을 처리할 수 ..