SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
[문제]
하나의 자연수를 입력 받아 각 자릿수의 합을 계산하는 프로그램을 작성하라.
[접근]
N을 문자열로 입력받고 문자열을 배열로 변환한 후 하나씩 더해줌
[시간소요 요소]
파이썬과 달리 문자열을 하나씩 읽으려면 배열로 변환해주어야함.
이 과정에서 두가지가 필요하였는데
- 새로운 배열을 생성하고 문자열을 문자마다 나누어 배열에 할당 -> String형변수.split()
- String형 변수를 Int로 형변환(형변환이 불가하여 함수 사용) -> Integer.parseInt(String형변수)
※ toCharArray()함수를 이용해 char형 배열로 바꾸어준 후 사용할 수도 있다. 하지만 char과 int연산시 '0'을 빼주어야 한다.
[결과]
class Solution
{
public static void main(String args[]) throws Exception
{
Scanner sc = new Scanner(System.in);
String N = sc.next();
String[] NArray = N.split("");
int answer = 0;
for (String e : NArray) {
answer += Integer.parseInt(e);
}
System.out.println(answer);
}
}
[다른풀이]
문자열을 받아서 int로 변환하여 푸는 방법 외에 다른 풀이를 보던 중
N을 받은 후 10으로 나눠주며 나머지를 더해주고 이후 N/10을 실행하여 자릿수를 하나씩 낮추는 방법을 보았다.
class Solution
{
public static void main(String args[]) throws Exception
{
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int answer = 0;
while(N != 0) {
answer += N%10;
N = N/10;
}
System.out.println(answer);
}
}
toCharrArray()함수를 이용한 문제풀이
public class codingtest {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String N = sc.next();
char[] charArr = N.toCharArray();
int sum = 0;
for (char e: charArr) {
e = (char) (e-'0');
sum += e;
}
System.out.println(sum);
}
}
'알고리즘 > SWEA' 카테고리의 다른 글
[SWEA] D1 1936 1대1 가위바위보(JAVA) (0) | 2023.01.07 |
---|