코린이의 소소한 공부노트

[LeetCode/Easy] 1945. Sum of Digits of String After Convert 본문

코딩테스트 풀이/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;