GreatAlgorithm-Study / AlgorithmStudy

🌟알고리즘 대장정🌟
6 stars 4 forks source link

[8주차_금요일] 에어컨 #103

Closed baexxbin closed 2 weeks ago

baexxbin commented 3 weeks ago
### 🤔 시간복잡도 고려사항

### 💡 풀이 아이디어
KodaHye commented 2 weeks ago

🤔 시간복잡도 고려사항

승객이 탑승 중인 시간에 쾌적한 실내온도를 유지하기 위한 최소 소비전력 구하기

💡 풀이 아이디어

  1. t1, t2, temperature 값 재조정
    • 에어컨을 트는 행위를 온도를 올리거나 유지하는 행위로 단순화하기 위해 temperature값을 재조정
    • dp 배열에서 인덱스 확인을 할 수 있도록 외부 온도를 0으로 설정하고, 0도에서 t2도 까지 확인하도록 함
  2. dp배열 채워주기
    • 외부 온도와 비교하며, 온도 유지, 하강, 상승 중 어떤 것을 할지 고르고 최소 비용 구해주기

문제가 잘 안풀려서 가장 이해가 잘 되는 풀이를 보면서 문제랑 풀이 둘 다 이해해보려고 했는데요 ,,, 완벽하게 이해되지는 않네요 ㅠㅠ!!,,,

  • 이해 안되는 부분 1) 처음 temperature 값 재조정 과정
  • 이해 안되는 부분 2) dp배열 열의 크기를 t2 +1이 아닌 t2 + 2로 해야되는 이유
  • 이해 안되는 부분 3) 다른 풀이도 봐봤는데, 직관적으로 와닿는 풀이가 없음,,,,

헝헝헝,,,,,, 문제가 잘 안풀리니까 우울하네요 문제 풀이 기깔나게 해 주실 스피드웨건 구해요,,,,,,,,,,,,,,,,, 그리디, DP 어렵다ㅇ아악ㄱㄱ1!!!!!!! 😱

참고 블로그

Jewan1120 commented 2 weeks ago

🤔 시간복잡도 고려사항

💡 풀이 아이디어

세상에... 처음에 재귀로 방향 잘못 잡아서 한참 걸렸습니다.. 재밌는 문제였네요. 근데 왜 dp값 결정할 때, 현재 값을 결정하면 틀리고 다음 값을 결정하는 방식으로 하면 맞을까요... 의문

baexxbin commented 2 weeks ago

🤔 시간복잡도 고려사항


💡 풀이 아이디어

해설을 참고해 dp로 돌아옴

// 온도를 1도 낮추기
if (j > 0) {
    int cost = (j - 1 < temperature) ? a : 0; // 외부온도보다 낮출 온도가 낮아서 온도조절이 필요하면 a비용 들어감
    dp[i + 1][j - 1] = Math.min(dp[i + 1][j - 1], dp[i][j] + cost);     // 그 다음 시간에 온도를 내린 비용은, 기존 최소 비용과 현재 최소 전력비용에 cost더한 값 중 작은 값
}

// 온도를 유지
int stayCost = (j == temperature) ? 0 : b; // 에어컨 끈 상태에서 비용
dp[i + 1][j] = Math.min(dp[i + 1][j], dp[i][j] + stayCost);             // 이전에 계산한 기존 비용 vs 온도 유지시 비용

// 온도를 1도 높이기
if (j < 50) {
    int cost = (j + 1 > temperature) ? a : 0; // 외부온도보다 높일 온도가 높아서 온도조절이 필요하면 a비용 들어감
    dp[i + 1][j + 1] = Math.min(dp[i + 1][j + 1], dp[i][j] + cost);     // 그 다음 시간에 온도를 올린 비용은, 기존에 계산해놓은 비용과 현재 온도를 높인 비용 중 최소 값
}

해설... 기대하겠습니다 엇 저도 dp[i][j]를 기준으로 점화식을 이어가고 싶었는데....! 의문입니다,,

yeahdy commented 2 weeks ago

🤔 시간복잡도 고려사항

💡 풀이 아이디어

특정 시간의 특정 온도일 때 필요한 최소 전력 찾기

에어컨 OFF

  1. 에어컨 ON 일 때는 다음의 온도를 내릴지, 올릴지 모르기 때문에 3가지 경우 모두 메모이제이션
  2. 에어컨 OFF 일 때는 실외온도를 기준으로 다음 온도가 결정되기 때문에 1가지 경우만 메모이제이션