Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- Math
- implement
- Stack
- geometry
- hash table
- Number Theory
- SQL
- array
- 구현
- 코테
- 자바
- string
- Binary Tree
- 파이썬
- 코딩테스트
- Class
- Tree
- sorting
- dynamic programming
- Counting
- bit manipulation
- java
- Data Structure
- simulation
- Matrix
- Binary Search
- database
- greedy
- Method
- two pointers
Archives
- Today
- Total
코린이의 소소한 공부노트
[LeetCode/Easy] 1945. Sum of Digits of String After Convert 본문
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;
'코딩테스트 풀이 > JAVA' 카테고리의 다른 글
[LeetCode/Easy] 1984. Minimum Difference Between Highest and Lowest of K Scores (0) | 2023.04.24 |
---|---|
[LeetCode/Easy] 1974. Minimum Time to Type Word Using Special Typewriter (0) | 2023.04.24 |
[LeetCode/Easy] 1925. Count Square Sum Triples (0) | 2023.04.24 |
[프로그래머스/Lv.0] 문자 리스트를 문자열로 변환하기 (0) | 2023.04.22 |
[프로그래머스/Lv.0] n 번째 원소까지 (0) | 2023.04.22 |