728x90

링크 : https://school.programmers.co.kr/learn/courses/30/lessons/12931
📚 문제

🚫 제한사항

💡 아이디어
✅ 10으로 나눈 나머지와 몫을 활용한다.
while(n > 0) { answer += n % 10; n /= 10;}
첫 번째 방법은, n을 10으로 나눈 나머지를 answer에 누적하고, n을 10으로 나누는 과정을 반복하는 방식입니다.
✅ 각 자릿수의 char 값을 활용한다.
String s = Integer.toString(n);for(int i = 0; i < s.length(); i++) { answer += s.charAt(i) - '0';}
두 번째 방법은, 주어진 n을 String 형태로 변환한 뒤, 각 자릿수의 char 값을 다시 int 형으로 변환해서 더하는 방식입니다.
❓ 두 방식의 성능 차이가 궁금하신가요?
더보기

첫 번째 방법의 성능



미묘한 차이지만 첫 번째 방법의 성능이 조금 더 좋은 것을 확인하실 수 있습니다.
👩🏻💻 Java 풀이
public class Solution { public int solution(int n) { int answer = 0; while(n > 0) { answer += n % 10; n /= 10; } return answer; }}
public class Solution { public int solution(int n) { int answer = 0; String s = Integer.toString(n); for(int i = 0; i < s.length(); i++) { answer += s.charAt(i) - '0'; } return answer; }}
🎨 다른 풀이
public class Solution { public int solution(int n) { int answer = 0; String s = Integer.toString(n); for(int i=0; i<s.length(); i++){ answer += Integer.parseInt(s.substring(i, i+1)); } return answer; }}
🔗 참고 링크
※ 끝까지 봐주셔서 감사합니다. 오류에 대한 지적은 언제나 환영입니다😊
728x90