https://school.programmers.co.kr/learn/courses/30/lessons/148653
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이
주어진 층에서 10의 제곱수만큼 이동할 수 있는 엘리베이터를 최소로 이용하여 0층으로 가야한다.
일의자리부터 보면서 5보다 크면 한자리 올림할 만큼 위로 가주고,
5보다 작으면 0이 되도록 내려간다.
5일경우 다음 자리 수를 봐야하는데 다음 자리 수가 5보다 크면 올림으로 해주고
5보다 작으면 내림으로 해줘야 최소 횟수로 이동할 수 있다.
메모리: 79.3MB
시간: 0.04ms
언어: Java 11
class Solution {
public int solution(int storey) {
int answer = 0;
int num = 0;
int idx = 0;
while(storey > 0) {
int tmp = storey % 10;
storey /= 10;
if(tmp < 5) {
num += tmp * Math.pow(10, idx);
}else if(tmp == 5) {
if(storey % 10 >= 5) {
answer += 10 - tmp;
storey += 1;
}else {
num += tmp * Math.pow(10, idx);
}
}else {
answer += 10 - tmp;
storey += 1;
}
idx++;
}
while(num > 0) {
answer += num % 10;
num /= 10;
}
return answer;
}
}
'Algorithm > Programmers' 카테고리의 다른 글
[프로그래머스] 카드 짝 맞추기 - JAVA (0) | 2024.05.18 |
---|---|
[프로그래머스] 파괴되지 않은 건물 - JAVA (0) | 2024.05.18 |
[프로그래머스] 광고 삽입 - JAVA (0) | 2024.05.18 |
[프로그래머스] 블록 이동하기 - JAVA (0) | 2024.05.17 |
[프로그래머스] 미로탈출 - JAVA (0) | 2024.05.17 |
[프로그래머스] [카카오 인턴] 경주로 건설 - JAVA (0) | 2024.05.12 |