Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 파이썬 1712
- l3 스위치
- 프로토콜
- 인터페이스
- network
- 백준 1712
- java
- 개발바닥
- aws 자격증
- 네트워크
- 1764
- 다형성
- 자바
- 10866
- 자바의 정석
- 테슬라폰
- 유선LAN
- 남궁성
- 파이썬
- 백준 2775
- AWS CLF
- 논리구성도
- TCP/IP
- modifiers
- 상속
- 인프콘
- 데이터 송수신
- 계층화
- 물리구성도
- 역캡슐화
Archives
- Today
- Total
병훈's Blog
SWEA - 2058. 자릿수 더하기 (Python, Java, C++) 본문
https://swexpertacademy.com/main/code/problem/problemDetail.do
[제약 사항]
자연수 N은 1부터 9999까지의 자연수이다. (1 ≤ N ≤ 9999)
[입력]
입력으로 자연수 N이 주어진다.
[출력]
각 자릿수의 합을 출력한다.
역시 메모리와 실행시간은 C++이 압도적 1등이고
코드길이는 Python이 1등이다.
<Python>
a = input()
result = 0
for i in a:
result += int(i)
print(result)
문자열에서 문자를 하나씩 읽어오면서 (for i in a:)
정수로 형변환하여 더해주는 방식을 사용했다.
이 방법이 가장 간단하다.
하지만 JAVA와 C++에서는 문자열을 정수로 변환하여 더하는 방법이 어려워,
이미 알고있는 방식 중 간단한 두번째 방식으로 풀이했다.
<JAVA>
import java.util.Scanner;
class Solution
{
public static void main(String args[]) throws Exception
{
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int result = 0;
while (a != 0) {
int tmp = a % 10;
result += tmp;
a /= 10;
}
System.out.println(result);
}
}
정수를 10으로 나누면 나머지가 일의 자리수다. 그리고 몫을 새로 저장한다.
계속 10으로 나눈 나머지인 일의 자리수를 더하면 각 자리의 숫자의 합이 나온다.
while문을 사용하여 a가 다 나눠질 때까지 반복한다.
- 일의 자리수를 구하기 위해 10으로 나눴다. 이때 나머지를 구하는 연산자가 %다.
- 수를 더할 때 += 를 사용하면 좌항에 우항을 더한 것을 좌항에 새로 저장한다는 뜻이다.
- 수를 나눌 때 /= 를 사용하면 좌항을 우항으로 나눈 것을 좌항에 새로 저장한다는 뜻이다.
<C++>
#include<iostream>
using namespace std;
int main(int argc, char** argv)
{
int a;
cin >> a;
int result = 0;
while (a!=0) {
result += a%10;
a /= 10;
}
cout << result;
return 0;//정상종료시 반드시 0을 리턴해야합니다.
}
728x90
728x90
'Algorithm' 카테고리의 다른 글
SWEA - 2068. 최대수 구하기 (Python, Java, C++) (0) | 2022.12.30 |
---|---|
SWEA - 2063. 중간값 찾기 (Python, Java, C++) (0) | 2022.12.30 |
SWEA - 1936. 1대1 가위바위보 (Python, Java, C++) (0) | 2022.12.30 |
[Python] [SWEA] 3131. 100만 이하의 모든 소수 (0) | 2022.11.08 |
[Python] [백준] 1260번 - DFS와 BFS (DFS/BFS) (0) | 2022.10.14 |