coding-test-java / problems

0 stars 2 forks source link

박준형 / 3기 2주차 / 2문제 #103

Closed iamjunhyeong closed 5 months ago

iamjunhyeong commented 5 months ago

문제명 : 수열의 점수

시간 복잡도 : , 공간 복잡도 :

1. 풀이 과정

문제를 봤을 때 어떻게 묶어야 최대합을 구할 수 있을지 생각했습니다. 그렇게 내린 결론대로 구현했습니다.
1. 절댓값이 큰 음수두개를 묶어서 둘의 곱을 더하기
2. 남은 음수는 0이 있다면 0과 묶어서 내보내기
3. 양수도 절댓값이 큰거 끼리 먼저 묶어서 곱을 더하기
4. 1은 무조건 더하는게 이득임 (묶기 x)

이렇게 하기위해 음수랑 양수 따로 받아서 구현했습니다.

문제명 : 과제

시간 복잡도 : , 공간 복잡도 :

1. 풀이 과정

일단 각 날짜에서 할 수 있는 최대 w를 두고 시작했습니다 (ex: 1일에는 20, 2일에는 30 .... 4일에는 60)
그리고 예제에서 4일같은 경우 과제가 여러개(60, 40, 10) 있으므로 4일 이전 날짜에서 (40, 10)보다 과제가 없는날이거나 w가 작은 과제를 찾습니다. 
그 중 가장 w가 작은 과제가 있는 날과 대체합니다. (과제가 없는 날이 최우선적으로 대체)

이 문제의 다른 풀이를 보니깐 훨씬 더 깔끔하게 짤 수 있었던 문제였습니다,, 지저분하지만 제가 풀이한 코드로 올립니다.