알고리즘 : 프로그래머스 : JAVA : 자릿수 더하기
2022. 1. 19. 23:09ㆍ알고리즘/프로그래머스
반응형
<문제>
<코드 & 설명>
public class Solution {
public int solution(int n) {
// 합을 구하기 위한 변수 answer 선언
int answer = 0;
while(n != 0) {
// 입력한 값을 10으로 나눈 나머지를 answer 에 더한다
// 만약 입력한 값이 135 라면 135%10 = 5 이다. (%10 = 1의 자리 구하는 방식)
// answer += 5 인 셈이다.
answer += n%10;
// 입력한 값에 10을 나눈다. 135를 10으로 나누면 13.5 지만 int 형이므로 13이 남는다.
n /= 10;
}
// [실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
System.out.println("Hello Java");
return answer;
}
}
이를 반복하면
135 -> 5
13 -> 3
1 -> 1
5+3+1 = 9 를 쉽게 구할 수 있다.
<설명>
1. 반환하기 위한 정수 자료형 int로 answer 변수를 생성하고 0으로 초기화
2. n이 0이 되기 전까지 while문을 돌림
3. answer 함수에 자릿수의 합을 넣고 n을 10으로 나누어 n에 저장(n이 0 되기 전까지 과정을 반복)
4. return으로 answer 반환
<참고>
while문
조건식을 확인하여 false가 될 때까지 수행문을 계속 반복합니다. 따라서 조건식이 계속 true이면 수행문이 무한 반복되고,
false이면 아예 실행을 하지 않습니다. while문은 조건식에 따라서 반복을 제어하고 싶을 때 사용합니다.
ex)
public static void main(String[] args) {
int a = 0;
int b = 5;
while(a < b) {
++a;
System.out.println(a); // 결과: 0, 1, 2, 3, 4
}
}
<다른 방법>
public class Solution {
public int solution(int n) {
int answer = 0;
// n값을 문자형으로 변형시키고 문자열 sum에 한글자씩 넣어주고
String[] sum = Integer.toString(n).split("");
// for문으로 sum 문자열 길이만큼 돌려주기
for(int i=0; i<sum.length; i++) {
// 문자열에 들어가있는 값을 정수으로 변환하고 answer 값을 넣어준다.
answer += Integer.parseInt(sum[i]);
}
// [실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
System.out.println("Hello Java");
return answer;
}
}
반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
알고리즘 : 프로그래머스 : JAVA : 자연수 뒤집어 배열로 만들기 (0) | 2022.01.19 |
---|---|
알고리즘 : 프로그래머스 : JAVA : 이상한 문자 만들기 (0) | 2022.01.19 |
알고리즘 : 프로그래머스 : JAVA : 제일 작은 수 제거하기 (0) | 2022.01.19 |
알고리즘 : 프로그래머스 : JAVA : 정수 제곱근 판별 (0) | 2022.01.19 |
알고리즘 : 프로그래머스 : JAVA : 콜라츠 추측 (0) | 2022.01.19 |