- 프로그래머스(PRO) [pro] 프로그래머스 level2 169199 리코쳇 로봇 (Java) - BFS [문제] https://school.programmers.co.kr/learn/courses/30/lessons/169199 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [풀이] GOAL에 도달하는 최소 이동 횟수를 반환하는 BFS 문제. 현재 위치에서 상, 하, 좌, 우 4 방향으로 슬라이딩해서 이동할 수 있다. 따라서 범위가 보드를 벗어나지 않고, 장애물 D에 도달하기 전까지 이동시킨다. 이동한 좌표 위치가 처음 위치와 같거나 이미 방문한 위치라면 다른 방향을 탐색하고, 그렇지 않다면 방문 처리 후 q에 넣는다. 큐에서 빼낸 좌표값이 G의 좌표값과 ..
- 프로그래머스(PRO) [pro] 프로그래머스 level2 176962 과제 진행하기 (Java) - 그리디 [문제] https://school.programmers.co.kr/learn/courses/30/lessons/176962# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [풀이] 1. 과제 시작 시간 기준 오름차순 정렬해서 우선순위 큐에 넣어둔다. 2. 새로운 과제가 있다면 그 과제를 시작한다. 만약 현재시각+새로운 과제 소요 시간이 그 다음 과제 시작 시간보다 더 오래걸린다면 중간에 과제를 멈춰야 한다. 따라서 과제를 수행한 시간을 뺀 다음, stack에 멈춘 과제를 넣고, 새로운 과제를 시작한다. 현재 시간도 갱신해준다. 멈춘 과제를 다시 할 때,..
- 프로그래머스(PRO) [pro] 프로그래머스 level2 172927 광물 캐기 (Java) - 그리디 [문제] https://school.programmers.co.kr/learn/courses/30/lessons/172927 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [풀이] 광물은 순서대로 캐야하고, 하나의 곡괭이를 이용해 5개의 연속된 광물을 캐야 한다. 1. 5개씩 광물의 섹션을 묶어서 다이아 곡괭이, 철 곡괭이, 돌 곡괭이로 각각 캤을 경우의 피로도의 합을 섹션별로 저장해둔다. 2. 돌로 캤을 때 가장 피로도가 높은 순서대로 내림차순 정렬한다. 돌로 캤을 때 피로도가 높은 경우를 다이아 곡괭이로 캐야 함을 이해해야 한다. 즉, 이 내림차순 정..