Algorithm/Java

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

고고마코드 2021. 12. 28. 21:10
반응형
12931번 문제

코딩테스트 연습 - 자릿수 더하기 | 프로그래머스 (programmers.co.kr)

 

코딩테스트 연습 - 자릿수 더하기

자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요. 예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다. 제한사항 N의 범위 : 100,000,000 이하의 자연수 입출

programmers.co.kr

 


풀이
  • 생각

각 자릿수의 합을 구하는 방법은 0이 될 때까지 10으로 나눈 나머지를 더하기

 

예) 123

n n/10 n%10 sum
12345 1234 5 0 + 5 = 5
1234 123 4 5 + 4 = 9
123 12 3 9 + 3 = 12
12 1 2 12 + 2 = 14
1 0 1 14 + 1 = 15

 

  • 1번 풀이
public int solution(int n) {
	int sum = 0;
	while (n != 0) {
		sum += n % 10;
		n /= 10;
	}

	return sum;
}

 

 

 

- n이 0이 될 때까지 n을 나눈 나머지의 합을 구한다.

 

  • 2번 풀이
public int solution(int n) {
	String nStr = String.valueOf(n);
	return nStr.chars().sum() - (48 * nStr.length());
}

- chars() 메소드로 String 을 IntStream 으로 가져온다.

- sum() 메소드로 합산을 구한다.

- 단 char 타입 '1' 을 정수형으로 변환하기 위해서는 48을 빼야 한다. ex) 1 = '1' - 48

- 그러므로 합산에서 자릿수만큼 48을 뺀다.

반응형