알고리즘

[프로그래머스, 자바] 자릿수 더하기

hminor 2024. 3. 20. 11:04
반응형

풀이

  • 단순하게 10으로 나눈 나머지를 계속 더하는 방법도 있지만
  • 자바에 대해 익숙해지기 위해 형변환을 하여 값을 추가하고자 해서 
  • 아래와 같이 해결했는데 
  • 해결 과정에서 파이썬의 range(시작, 끝)과 같은 걸 for-each로 접근하고 싶었는데
  • 잘 되지 않아 찾아본 결과 stream을 사용하면 되어 두 번째 해결 방법처럼 하면 해결이 된다.
  • 아 그리고 charAt()으로 문자를 가져온 다음 변형하려면 String.value()로 형변환은 한 번 더해야함.

 

import java.util.*;

public class Solution {
    public int solution(int n) {
        int result = 0;
        String s_n = String.valueOf(n);
        for (char num: s_n.toCharArray()) result += Integer.parseInt(String.valueOf(num));
        return result;
    }
}

 

 

// 평소처럼 import java.util.*; 을 할 때는 에러가 발생하니 주의할 것.
import java.util.stream.*;

public class Solution {
    public int solution(int n) {
        int result = 0;
        String s_n = String.valueOf(n);
        for (int idx: IntStream.range(0,s_n.length()).toArray()) result += Integer.parseInt(String.valueOf(s_n.charAt(idx)));
        return result;
    }
}