728x90
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이
%10으로 문제를 풀어도 되는데, 나는 잘라서 푸는게 더 편해서 charAt으로 자릿수마다 잘라서 풀었다.
1️⃣ 만약 6~9 일 경우, +4~+1을 해서 10의 자리에서 클릭하는 것이 더 적은 횟수로 0층에 갈 수 있다.
2️⃣ 만약 1~4 일 경우, 그냥 그 숫자만큼 클릭하는 것이 더 적은 횟수로 0층에 갈 수 있다.
3️⃣ 만약 5일 경우, 2가지 방법을 사용할 수 있는데
✔ 만약 십의자리 숫자가 5~9일 경우, +5번 클릭한 뒤에 십의 자리에 +1을 해주는 것이 더 적은 횟수이다.
✔ 만약 십의 자리 숫자가 1~4일 경우, 그냥 +5번 클릭한 뒤, 십의자리 숫자만큼 누르는 것이 더 적은 횟수이다.
전체코드
import java.io.*;
import java.util.*;
class Solution {
public int solution(int storey) {
String tmp = String.valueOf(storey);
int num = 0;
int add = 0;
for(int i=tmp.length()-1; i>=0; i--){
char now = tmp.charAt(i);
if(now-48+add > 5){
num += (10 - (now-48+add));
add = 1;
}else if(now-48+add < 5){
num += (now-48)+add;
add = 0;
}else{
if(i > 0 && tmp.charAt(i-1)-48+1 > 5){
num += (10 - (now-48+add));
add = 1;
}else{
num += (now-48)+add;
add = 0;
}
}
}
if(add > 0){
num += 1;
}
return num;
}
}
728x90
'코테 > Algorithm' 카테고리의 다른 글
[Programmers] 다리를 지나는 트럭 (JAVA) (0) | 2024.08.20 |
---|---|
[BOJ] 25416: 빠른 숫자 탐색 (JAVA) (0) | 2024.08.19 |
[Programmers] [1차] 프렌즈4블록 (JAVA) (1) | 2024.08.14 |
[Programmers] 단속카메라 (JAVA) (0) | 2024.08.12 |
[Programmers] 숫자 게임 (JAVA) (0) | 2024.08.06 |