송민준의 개발노트

프로그래머스-level1-자릿수 더하기 본문

알고리즘/프로그래머스

프로그래머스-level1-자릿수 더하기

송민준 2019. 11. 10. 15:53

https://programmers.co.kr/learn/courses/30/lessons/12931

 

코딩테스트 연습 - 자릿수 더하기 | 프로그래머스

자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요. 예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다. 제한사항 N의 범위 : 100,000,000 이하의 자연수 입출력 예 N answer 123 6 987 24 입출력 예 설명 입출력 예 #1 문제의 예시와 같습니다. 입출력 예 #2 9 + 8 + 7 = 24이므로 24를 return 하면 됩니다.

programmers.co.kr

형변환에서 고민했던 문제...

요새 람다식에 빠져 stream에 대해서 써보려고 노력중인데... 그냥 편하게 푸는 걸로^^

StringBuilder를 활용하였는데 만약 String을 써줄 경우 속도 차이가 15배는 나니까 참고~^^

(람다식과 더불어 String 대신 StringBuilder 쓰는 것에 익숙해지고자 노력중...)

StringBuilder에서 char로 하나씩 뽑아서 다시 int 형으로 변환해주면서 합계에 더해준다.

import java.util.*;

public class Solution {
    public int solution(int n) {
        StringBuilder nString = new StringBuilder(""+n);
		 int sum = 0;
		 for(int i =0; i < nString.length(); i++) {
			 sum += Integer.parseInt(Character.toString(nString.charAt(i)));
		 }
		 return sum;
    }
}

만족스러운 속도다...^^

 

참고 코드 : 기본에 충실한 코드인듯... 나처럼 접근안하는게 좋을듯..ㅋㅋㅋ