본문 바로가기

알고리즘/소프티어

(2)
[소프티어] 나무 섭지 LV.3 문제https://softeer.ai/practice/7726 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai  자세한 내용은 원문 코드를 참조할 것. 풀이유령이 과연 남우를 잡을 수 있을까? 에 대한 풀이는 간단하다.BFS를 사용하여, '벽을 뚫을 수 있는' 유령의 최단거리보다 남우의 '최단거리' 가 짧으면 된다. 따라서, BFS를 유령 / 남우, 두 번씩 비교하여 최소값을 비교하면 된다. 여기서 시간 초과가 발생할 수 있는데, BFS의 범위 스코프를 '유령' 값의 스코프를 통해 비교해주면 된다.전체 탐색의 경우 2.08초(처음에 시간 초과가 발생했다)였으나, 풀이 이후 0.1초 이내로 풀 수 있었다. 하위 코드에서는 'ghostDist'를 통해 스코프를 제한했다.아래 코드에서 해..
[소프티어] 함께하는 효도 LV.3 문제https://softeer.ai/practice/7727 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai  자세한 내용은 원문 코드를 참조할 것. 풀이 처음에는 dp[Idx][R][C]를 통해, 각 친구(idx)별 경로를 추적하여 dp를 사용하고자 했으나,백트래킹으로 각 위치별 수집량을 점유한 뒤, 이를 다음 친구로 적용하는 로직으로 풀이를 변경하였다. 풀이는 다음과 같다. 1. 0번째 인덱스(첫번째 친구)를 먼저 탐색한다.2. if 기저조건 : time = 3초일 경우 해당 값을 저장한 채로, idx를 증가한 뒤 재귀 함수를 시행한다(다음 친구 호출)3. 최종 조회 시 최대값을 비교한다.4. 백트래킹을 통해 가지치기를 수행한다. 자세한 내용은 코드를 참조할 것 코드 impor..