Description
주어진 숫자를 자리수마다 잘라서 모두 더하는 연산을 반복 한뒤 한자리 숫자를 반환하는 문제입니다.
Solution 1. Recursion
public static int superDigit(String n, int k) {
if(n.length() == 1 && k == 1)
return Integer.valueOf(n);
long sum = 0;
for(int i=0;i<n.length();i++)
sum += Integer.valueOf(n.substring(i,i+1));
return superDigit(Long.toString(sum*k), 1);
}
직관적으로 재귀호출을 이용해 처리 할 수 있습니다. 각 자리수 string으로 변환해서 더한 뒤 해당 값으로 재귀 호출하며 종료 조건으로 한자리 숫자가 들어 왔을때 해당 값을 반환해줍니다.
Reference
,Array ,TwoPoint,LinkedList, Depth-First Search, Breadth-First Search, Matrix, TwoPoint, Recusion,
'알고리즘 > HackerRank' 카테고리의 다른 글
[HackerLank] Truck Tour - 문제풀이 (0) | 2022.03.25 |
---|---|
[HackerLank] New Year Chaos - 문제풀이 (0) | 2022.03.25 |
[HackerLank] Grid Challenge - 문제풀이 (0) | 2022.03.16 |
[HackerLank] Palindrome Index - 문제풀이 (2) | 2022.03.16 |
[HackerLank] Caesar Cipher - 문제풀이 (0) | 2022.03.16 |