[프로그래머스] 자릿수 더하기(자바)
👩🏫 문제
문제 설명
자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요.
예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다.제한사항
N의 범위 : 100,000,000 이하의 자연수
입출력 예
N answer 123 6 987 24
👩💻 풀이
1) charAt 활용 풀이
import java.util.*;
public class Solution {
public int solution(int n) {
String number = Integer.toString(n);
int answer = 0;
for(int i = 0; i < number.length(); i++) {
answer += number.charAt(i) - '0';
}
return answer;
}
}
2) 형 변환이 많~~~은 풀이
형 변환이 잦아서 효율이 떨어지는 코드지만, 형 변환 문법을 익힐 수 있었다!ㅋㅋ
public int solution(int n) {
char[] num = Integer.toString(n).toCharArray();
int answer = 0;
for(char c : num) {
answer += Integer.parseInt(Character.toString(c));
}
return answer;
}
3) 정석, 나눗셈을 활용한 풀이
import java.util.*;
public class Solution {
public int solution(int n) {
int answer = 0;
while (n != 0) {
answer += n % 10;
n /= 10;
}
return answer;
}
}
아직 자바로 코드를 간신히 구현하기만 할 뿐, 어떤 것이 좋은 코드인지 잘 모르는 상태라서 3가지 풀이 중 어떤 것이 베스트인지 모르겠다..ㅠ
백준에서는 메모리 사용량, 속도를 한번에 확인할 수 있어서 여러 풀이를 비교하기 좋은데, 프로그래머스에서는 그런 기능을 못 찾았다.(없는건가?)
한 자리씩 떼서 본다는 생각에charAt메소드가 떠올라 사용했는데, 다른 분들의 풀이에 달린 댓글들을 보니 형변환을 하고 인덱싱을 하는 형식의 코드가가독성은 좋아도, 메모리를 잡아먹는 안좋은 코드라고 표현되어있었다. 가장 좋은 코드는 정석대로 나눗셈을 한 3번 코드인걸까?
좋은 코드란 몰까...?
Author And Source
이 문제에 관하여([프로그래머스] 자릿수 더하기(자바)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@geesuee/프로그래머스-자릿수-더하기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)