문제링크
문제 접근
- 뒤에서부터 앞으로 오며 계산
- 4 이하면 빼기, 6 이상이면 더하기
- 5일때는 앞의 숫자에 따라 결정
- 앞이 4 이하면 빼기, 5 이상이면 더하기
코드
import java.util.*;
class Solution {
public int solution(int storey) {
int answer = 0;
String storeyy = Integer.toString(storey);
char[] map = storeyy.toCharArray();
for(int i=map.length-1 ; i>=0 ; i--){
int now = map[i] - '0';
if(i==0) {
if(now == 10) answer += 1;
else{
if(now <= 5) answer += now;
else answer += (10 - now) + 1;
}
}
else if(now == 10){
map[i-1] += 1;
}
else if(now >= 6) {
answer += 10 - now;
map[i-1] += 1;
}
else if(now <= 4) answer += now;
else if(now == 5){
answer += 5;
if(map[i-1] - '0' >= 5) {
map[i-1] += 1;
}
}
}
return answer;
}
}
결과

정리
- 처음엔 bfs 접근했지만 조건문으로 해결
- 맨 앞까지 왔을 때 조건 처리 한번에 못함