updated at 2022. 12. 30. 오전 12:59:17
This commit is contained in:
@@ -1,18 +1,32 @@
|
|||||||
// [문제 링크]: https://school.programmers.co.kr/learn/courses/30/lessons/148653
|
// [문제 링크]: https://school.programmers.co.kr/learn/courses/30/lessons/148653
|
||||||
|
|
||||||
|
import java.util.*;
|
||||||
|
import java.util.stream.*;
|
||||||
class Solution {
|
class Solution {
|
||||||
public int solution(int storey) {
|
public int solution(int storey) {
|
||||||
int answer = 0;
|
int answer = 0, temp = 0;
|
||||||
while (storey != 0) {
|
int max = (int)Math.round(Math.log10(storey));
|
||||||
int upperNumber = (storey %100)/10;
|
//System.out.println(max);
|
||||||
int number = storey % 10;
|
temp = storey;
|
||||||
if (number > 5 || number == 5 && upperNumber>=5) {
|
boolean up = false;
|
||||||
storey += 10;
|
for(int a = 0; a <= max; a++){
|
||||||
answer += (10 - number);
|
int target = (int)(Math.round(temp/Math.pow(10,a))*Math.pow(10,a));
|
||||||
} else {
|
int[] ar = Stream.of(String.valueOf(target).split("")).mapToInt(Integer::parseInt).toArray();
|
||||||
answer += number;
|
int tt = (ar.length-a>0)?ar[ar.length-1-a]:0;
|
||||||
|
//System.out.println(target+"tg"+temp+" "+((tt<5)?tt:10-tt)*(int)Math.pow(10,a));
|
||||||
|
if(ar.length-1-a > 0 && ar[ar.length-2-a]>=5 && tt == 5) up = true;
|
||||||
|
else up = false;
|
||||||
|
if(tt<5 || !up && tt == 5){
|
||||||
|
temp-=tt*Math.pow(10,a);
|
||||||
|
answer+=tt;
|
||||||
|
//System.out.println("-");
|
||||||
|
} else{
|
||||||
|
temp+=(10-tt)*Math.pow(10,a);
|
||||||
|
answer+=10-tt;
|
||||||
|
//System.out.println("+");
|
||||||
}
|
}
|
||||||
storey = storey / 10;
|
if(temp == 0) break;
|
||||||
|
//if(temp<0) System.out.println("error");
|
||||||
}
|
}
|
||||||
return answer;
|
return answer;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user