Leetcode Java Maximum 69 Number
업데이트:
문제
코드
class Solution {
public int maximum69Number(int num) {
int position = -1;
for (int i = 0, temp = num, remainder = temp % 10; temp > 1; i++, temp /= 10, remainder = temp % 10) {
if (remainder == 6) {
position = i;
}
}
if (-1 < position) {
num += (int) (3 * Math.pow(10, position));
}
return num;
}
}
결과
설명
-
6과 9로 이루어진 num을 최대 한 자리만 바꿔서 최대가 되는 값으로 변경하는 문제이다.
-
position은 위치를 바꿀 자릿수를 저장할 변수로, -1로 초기화한다.
- i에 0, temp에 num, remainder에 temp의 1의 자릿수를 넣고 temp가 1보다 클 때까지 i를 증가시키고, remainder에 temp의 1의 자릿수를 넣어주며 아래를 반복한다.
- remainder가 6인 경우, position에 현재 자릿수인 i를 넣어준다.
-
position이 -1보다 큰 변경 가능한 위치가 존재하는 경우, num에 $10^position$ 값을 더해준다.
- 수행이 완료되어 최대 한 자리만 바꾸어 가능한 최대 값으로 변환된 num을 주어진 문제의 결과로 반환한다.
소스
Sample Code는 여기에서 확인 가능합니다.
댓글남기기