문제: 코딩테스트 연습 - 자릿수 더하기 | 프로그래머스 스쿨 (programmers.co.kr)
문제설명
정수 n이 매개변수로 주어질 때 n의 각 자리 숫자의 합을 return하도록 solution 함수를 완성해주세요.
제한사항
- 0 ≤ n ≤ 1,000,000
입출력 예
n | result |
1234 | 10 |
930211 | 16 |
나의 문제 풀이
class Solution {
// 1. String 배열 이용
public int solution(int n) {
int answer = 0;
String s = Integer.toString(n);
String[] ss = s.split("");
for (int i = 0; i < ss.length; i++) {
answer = answer + Integer.parseInt(ss[i]);
}
return answer;
}
// 2. while 이용
public int solution(int n) {
int answer = 0;
while(n != 0) {
answer += n % 10;
n /= 10;
}
return answer;
}
// 3. char배열과 아스키코드 이용
//'0'부터 '9'까지 아스키코드는 48부터 57 임 아스키코드값인 48을빼게 되면
// 그 차이만큼 반환되게 되는데, 그 차이가 숫자와 같아서 arr[i] - '0'
// 또는 arr[i] - 48로 형변환을 리소스를 크게 사용하지 않고 가능합니다.
public int solution(int n) {
int answer = 0;
char[] c = Integer.toString(n).toCharArray();
for (char x : c) {
answer += x - 48;
}
return answer;
}
// 4. charAt이용
public int solution(int n) {
int answer = 0;
String n2 = String.valueOf(n);
for (int i = 0; i < n2.length(); i++) {
answer += Integer.parseInt(String.valueOf(n2.charAt(i)));
}
return answer;
}
}
느낀점
String은 str, array는 arr 으로 변수명을 이용하면 알아보기 쉽겠군!!
'코딩테스트 연습 > 프로그래머스 LV.0' 카테고리의 다른 글
[프로그래머스] Lv.0 배열 두 배 만들기 - 자바(Java) (0) | 2024.03.09 |
---|---|
[프로그래머스] Lv.0 문자열안에 문자열 - 자바(Java) (0) | 2024.03.08 |
[프로그래머스] Lv.0 피자 나눠 먹기 (1) - 자바(Java) (0) | 2024.03.06 |
[프로그래머스] Lv.0 특정 문자 제거하기 - 자바(Java) (0) | 2024.03.05 |
[프로그래머스] Lv.0 배열의 유사도 - 자바(Java) (0) | 2024.03.04 |