일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 감사일기
- QA자동화
- 테스트자동화
- 카카오API
- LTE기초
- 자동화테스트
- Python
- HTML
- 앱개발
- 코딩
- 코멘토
- 백준
- QA자동화테스트
- pytest
- HTTP
- 하이브리드앱테스트
- javascript
- Selenium
- Flutter
- QA
- 실무PT후기
- 무선통신
- DART
- ShareTechnote
- QA직무교육
- 코멘토실무PT
- testautomationuniversity
- 웹ui자동화
- 서평
- 코딩테스트
- Today
- Total
오예남
[Java] 숫자를 입력 받고 각 자리 수를 더한 값을 출력하는 함수 만들기 본문
안녕하세요,
오늘은 Java 를 사용해서 입력된 숫자의 각 자리 수를 더하는 알고리즘을 공유하려고합니다.
이 알고리즘은 백준 4673번 셀프넘버 문제를 풀다가 접하게 되었습니다.
4673번: 셀프 넘버
셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때,
www.acmicpc.net
위 문제에서는 입력받은 숫자까지 더해야하지만, 이 포스팅에서는 각 자리의 숫자만 더하는 코드를 공유드리겠습니다.
예를들어 1234 를 받으면 1+2+3+4 -> 10을 출력하는 함수의 코드입니다.
public static int calNum(int num) {
int result=0;
String[] Snum;
Snum = Integer.toString(num).split("");
for(String value : Snum) {
result += Integer.parseInt(value);
}
return result;
}
민망하지만 제가 처음 작성했던 코드입니다.
숫자를 입력받았지만, 그 숫자를 쪼개기 위해서 String으로 변환하고.... 더하고... 참 부끄러운 코드입니다.
위 코드는 무시하셔도 되구요.
이제 아래 코드가 다른 분들의 코드를 참고해서 작성한 코드입니다.
public static int calNum(int num) {
int result=0;
while (num!=0) {
result += num%10;
num/=10;
}
return result;
}
확실히 이해하기도 쉽고, 번거롭게 문자로 변환할 필요도 없는 간단한 코드입니다.
while 문을 사용하여 result 값에 num의 마지막 자리수를 넣어주고 마지막 자리를 지우는 동작을 반복합니다.
<전체 코드>
public class test {
public static void main(String[] args) {
System.out.println(calNum(0));
System.out.println(calNum(3));
System.out.println(calNum(34));
System.out.println(calNum(5678));
}
public static int calNum(int num) {
int result=0;
while (num!=0) {
result += num%10;
num/=10;
}
return result;
}
}
<출력 값>
0
3
7
26
백준 문제를 풀고 맞췄습니다!! 라는 글자를 확이했더라도 다른 분들의 코드를 확인하는게 중요합니다.
특히 저 처럼 초보코더들에게 고수님들의 좋은 코드들은 정말 너무 소중합니다...
이렇게 글을 쓰는 이유도 한번 더 좋은 코드를 작성해보면서 기억에 담아두기 위함입니다.ㅎㅎ
쉬운 알고리즘이겠지만 누군가에게는 도움이 됬으면 좋겠네요 ㅎㅎ
요즘 계속해서 대규모 개발자 채용이 진행되고 있는데, 코딩테스트 준비하시는 분들 모두 화이팅입니다~!
'기타코딩' 카테고리의 다른 글
[Python] Dooray API를 이용한 두레이 메세지 전송 자동화 (0) | 2025.02.06 |
---|---|
[Flappy bird] Unity로 수익형 게임 만들기 _ 조코딩 JoCoding (0) | 2021.10.11 |
[Window] ubuntu 설치방법, The Window Subsystem for Linux optional component is not enabled 현상 해결 (0) | 2021.10.05 |
컴퓨터에 C드라이브는 있는데, 왜 A 드라이브는 없을까? (0) | 2021.10.04 |
[Mac OS] 맥북 터미널에서 환경변수 설정하기 (iterm 2 사용) (0) | 2021.09.22 |