반응형
https://school.programmers.co.kr/learn/courses/30/lessons/12931
* 문제 설명
프로그래머스 Level1 자릿수 더하기
자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return하는 solution 함수를 만들라
예를 들어 N = 123이면 1+2+3=6 을 return 하면 된다.
* 입출력 예
N | answer |
123 | 6 |
987 | 24 |
* 소스코드1
1. 숫자를 쪼개기 힘들기 때문에 문자열로 변환
숫자를 문자로 변환은 생각보다 간단하다........!
new String으로 선언한 후, 파라미터로 입력받은 n과 텅 빈 값("")을 붙이면(+) 된다.
(long n = 12345 이었으면, String str = 12345; 문자열이 된다.)
2. 문자열을 쪼개서 배열로 저장
strArr라는 배열을 선언한 후, str 문자열을 split()을 이용해 쪼개어 배열에 넣는다.
split() 메소드는 String에서만 사용되고, 마침표나 슬래쉬 등 기호를 기준으로 값을 쪼갤 수 다.
이 문제에서는 모든 글자를 쪼개기 때문에 split("")을 사용한다.
3. 문자열 배열을 숫자로 바꿔준다.
리턴할 배열 answer의 데이터 타입이 int인데 arr는 String 배열이기에 Integer.parseInt()을 통해 형변환해준다.
혹은 Integer.valueOf을 통해 형변환을 해준다.
4. 각 자릿수를 합하기 때문에 for문에서 +=를 사용해 누적해서 더해준다.
public class Solution {
public int solution(int n) {
int answer = 0;
String str = n +""; // 숫자 n을 문자열 str로 바꾸기
String[] arr = str.split(""); // 문자열 내 글자 모두 나누기
for(int i = 0; i<arr.length; i++){
answer += Integer.valueOf(arr[i]); // 문자열 배열을 숫자로 바꾸기
}
return answer;
}
// 하나도 안 찾아보고 내 힘으로 해결한 코드 ㅠ 조금씩 발전 중..!
}
// 123
//6
//987
//24
반응형
'Problem Solving > Algorithm Concepts' 카테고리의 다른 글
[Programmers] Level1 직사각형 별찍기 (0) | 2022.08.03 |
---|---|
[Programmers] Level1 문자열 내 p와 y의 개수 (0) | 2022.08.02 |
[Programmers] Level1 자연수 뒤집어 배열로 만들기 (0) | 2022.08.01 |
프로그래머스 Level 1 모음 (0) | 2022.08.01 |
[Java Algorithm] 1-4 단어 뒤집기(StringBuilder 이용법 또는 직접 뒤집기) (0) | 2022.07.27 |