코딩테스트 풀이/JAVA
[LeetCode/Easy] 1945. Sum of Digits of String After Convert
무지맘
2023. 4. 24. 12:56
1. Input
1) String s
2) int k
2. Output
1) s를 다음과 같이 숫자로 변환한 후, 자리수의 합을 k번 구한 결과를 반환
- s의 알파벳을 a=1, b=2, ..., z=26으로 변환해서 이어붙인다.
- 이어붙인 숫자의 자리 수의 합을 구한다.
- 자리 수의 합을 구하는 과정을 k번 반복한다.
3. Constraint
1) 1 <= s.length <= 100
2) 1 <= k <= 10
3) s는 영어 소문자로만 이루어져 있다.
4. Example
Input: s = "leetcode", k = 2 -> Output: 6
설명: 문자열을 숫자로 바꾸는 작업을 먼저 한다.
- "leetcode" ➝ "(12)(5)(5)(20)(3)(15)(4)(5)" ➝ "12552031545" ➝ 12552031545
- 1번째 변환: 12552031545 ➝ 1 + 2 + 5 + 5 + 2 + 0 + 3 + 1 + 5 + 4 + 5 ➝ 33
- 2번째 변환: 33 ➝ 3 + 3 ➝ 6
- 따라서 6을 반환한다.
5. Code
1) 첫 코드(2023/04/24)
int num = 0;
for(int i=0 ; i<s.length() ; i++){
int x = s.charAt(i)-'a'+1;
num += x/10 + x%10;
}
while(--k > 0){
int sum = 0;
while(num>0){
sum += num%10;
num /= 10;
}
num = sum;
}
return num;