코딩테스트 풀이/JAVA
[LeetCode/Easy] 2739. Total Distance Traveled
무지맘
2023. 6. 30. 23:32
1. Input
1) int mainTank
- 트럭이 달리면서 소비하는 연료를 담은 탱크
2) int additionalTank
- 여분 탱크로, 트럭이 달리면서 직접적으로 해당 연료를 소비할 수는 없다.
2. Output
1) 다음과 같이 계산했을 때 트럭이 달릴 수 있는 최대 거리를 반환
- 트럭은 연료 1리터로 10km를 갈 수 있다.
- addtionalTank에 연료가 있는 한, mainTank의 연료 5리터를 소모할 때마다 addtionalTank의 연료 1리터가 mainTank로 자동 보충 된다.
3. Constraint
1) 1 <= mainTank, additionalTank <= 100
4. Example
Input: mainTank = 5, additionalTank = 10 -> Output: 60
설명:
- mainTank의 5리터를 쓴다.
- addtionalTank에서 mainTank로 1리터가 보충된다.
- mainTank의 1리터를 쓴다.
- 총 6리터를 썼으므로 6*10=60km까지 이동 가능하다.
5. Code
1) 첫 코드
class Solution {
public int distanceTraveled(int mainTank, int additionalTank) {
int used = 0;
while(mainTank>0){
if(mainTank>=5){
used += 5; mainTank -= 5;
if(additionalTank>0){
additionalTank--; mainTank++;
}
}
else{
used += mainTank; break;
}
}
return used*10;
}
}
- 56%, 85%
2) 반복횟수를 줄여본 코드
class Solution {
public int distanceTraveled(int mainTank, int additionalTank) {
int used = 0;
while(mainTank>=5){
int x = mainTank/5;
used += x*5;
mainTank %= 5;
if(additionalTank>=x){
additionalTank -= x;
mainTank += x;
} else if(0<additionalTank){
mainTank += additionalTank;
additionalTank = 0;
}
}
return (used+mainTank)*10;
}
}
- 100%, 74%