Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- 딥러닝
- Algorithm
- 탐욕법
- JavaScript
- Java
- cim
- re_lunchu
- GAN
- 프로그래머스
- alogorithm
- 현대자동차
- cs공부
- 파이썬
- 자바
- 백준
- 소프티어
- softeer
- 힙큐
- Baekjoon
- 현대
- Python
- heapq
- programmers
- 토이프로젝트
- 오블완
- 티스토리챌린지
- boj
- 스마트팩토리
- 알고리즘
- 자바스크립트
Archives
- Today
- Total
eaz_coding
[Softeer] 조립라인 본문
문제
요약
A와 B, 두 개의 조립라인이 있고,
A1 -> A2 이렇게 이동하거나 A1->B2 이렇게 i에서 i+1로 라인을 이동할 수 있는데
다른 조립라인으로 이동할 때는 추가적인 이동시간이 걸린다.
가장 빠른 조립라인의 시간을 구하여라.
원본
https://softeer.ai/practice/6287
Softeer - 현대자동차그룹 SW인재확보플랫폼
softeer.ai
풀이
풀이1(시간초과 및 오답)
처음 재귀로 접근했을때, 예시 테스트 케이스만 맞고 두개는 오답, 두개는 시간초과가 떴다.
시간초과는 예상 했는데 오답인 부분은 어디서 오답이 발생하는 지 모르겠다.
import sys
input = sys.stdin.readline
n = int(input())
arr, AB = [[0]*n for _ in range(2)], [[0] * n for _ in range(2)]
for i in range(n-1):
arr[0][i], arr[1][i], AB[0][i+1], AB[1][i+1] = map(int, input().split())
arr[0][n-1], arr[1][n-1] = map(int, input().split())
answer = 999999999
def sol(now, i, idx):
global answer
if now > answer:
return
if idx == n:
answer = min(answer, now)
return
sol(now+arr[i][idx], i, idx+1)
sol(now+arr[i][idx]+AB[i][idx], i-1 if i else i+1, idx+1)
sol(arr[0][0], 0, 0)
sol(arr[1][0], 1, 0)
print(answer)
풀이2(정답)
빠르거나 가장 긴 루트를 찾을 때 재귀보다 시간을 줄이려면 DP다.
처음 접근할 때는 앞에서부터 뒤에것을 더해갔다면
dp로 풀때는 현재에 앞에서 가장 적은 것을 더해간다.
import sys
input = sys.stdin.readline
n = int(input())
arr, AB = [[0, 0] for _ in range(n)], [[0, 0] for _ in range(n)]
for i in range(n-1):
arr[i][0], arr[i][1], AB[i+1][0], AB[i+1][1] = map(int, input().split())
arr[n-1][0], arr[n-1][1] = map(int, input().split())
dp = [[0, 0] for _ in range(n)]
dp[0][0], dp[0][1] = arr[0][0], arr[0][1]
for i in range(1, n):
dp[i][0] = min(dp[i-1][0], dp[i-1][1]+AB[i][1]) + arr[i][0]
dp[i][1] = min(dp[i-1][1], dp[i-1][0]+AB[i][0]) + arr[i][1]
print(min(dp[n-1]))
'eaz_algorithm' 카테고리의 다른 글
[Softeer] 스마트 물류 (0) | 2024.03.15 |
---|---|
[Softeer] 자동차 테스트 (0) | 2024.03.13 |
[Softeer] 순서대로 방문하기 (0) | 2024.03.11 |
[Baekjoon] 휴게소 세우기 (0) | 2024.03.08 |
[Softeer] 슈퍼컴퓨터 클러스터 (1) | 2024.03.07 |