Leetcode Java Sum of Digits of String After Convert
업데이트:
문제
코드
class Solution {
public int getLucky(String s, int k) {
int result = 0;
for (char c : s.toCharArray()) {
int num = c - 96;
if (num > 9) {
result += (num / 10) + (num % 10);
} else {
result += num;
}
}
while (--k > 0 && result > 9) {
int sum = 0;
while (result > 0) {
sum += result % 10;
result /= 10;
}
result = sum;
}
return result;
}
}
결과
설명
-
주어진 문자열 s의 영문자 순서(1부터 시작)를 순서대로 이어준 후, k번 각 자리 숫자를 더해준 결과를 반환하는 문제이다.
- result는 결과를 저장할 변수로, 0으로 초기화 후 아래를 수행한다.
- s의 각 문자를 순서대로 c에 넣어 96을 뺀 1부터 시작하는 영문자 순서를 이용하여 result에 각 자리 숫자를 더해준다.
- k를 감춘 값이 0보다 크거나 result가 9 초과인 2자리 수일 때 까지 아래를 반복한다.
- sum은 result의 각 자리 숫자를 더해줄 변수로, result가 0 초과일 때 까지 sum에 result를 10을 나눈 나머지 값을 더해준 후 result에 10을 나눈 몫을 넣어준다.
- result에 각 자리수를 더한 sum을 넣어준다.
- 반복이 완료되면 result를 주어진 문제의 결과로 반환한다.
소스
Sample Code는 여기에서 확인 가능합니다.
댓글남기기