프로그래머스 자릿수 더하기

Tae hyun·2023년 5월 26일
0

코딩테스트

목록 보기
2/5

문제
정수 n이 매개변수로 주어질 때 n의 각 자리 숫자의 합을 return하도록 solution함수를 완성해주세요

풀이방법
1. 주어지는 정수 n을 Integer.toString()메서드를 통해 문자화 해 String str참조변수에 저장한다.
2.int형의 배열 arr객체를 생성한다.
3. for문을 돌려 stirng타입으로 받은 문자열을 char타입으로 만든뒤 int형으로 바꿔 arr배열에 각각 저장한다.
4.for문을 돌려 answer에 arr안에 있는 숫자들을 모두 더해준다.

class Solution {
    public int solution(int n) {
        String str = Integer.toString(n);
        int[]arr = new int[str.length()];
        for(int i=0; i <str.length();i++){
            arr[i]=str.charAt(i) -'0';
        }
        int answer=0;
        for(int i=0;i<arr.length;i++){
            answer=answer+arr[i];
        }
     
        return answer;
    }
}

*Integer.toString()
가장 많이 사용하는 숫자를 문자로 변환하는 형변환 방법.
사용법

int num = 123;
String str1 = Integer.toString(num);

다른 방법으로는 String.valueOf()를 사용할 수 있다.

*charAt()
String 타입으로 받은 문자열을 char타입으로 한 글자만 받는 함수.
주로 scanner와 같이 응용되어 사용됨

사용법
1. 문자열 받기

public class charat문자받기{
	public static void main(String[] args){

        String str = "Hello";
        for(int i=0;i<str.length();i++){
        	System.out.print(str.charAt(i)+" ");
        	}
            System.out.println();
        
    }
}

2.숫자 받기
숫자형 문자를 charAt함수로 추출하면 char형이므로 int형으로 변환하려면 아스키코드로 변환된다.
그래서 '0'또는 '48'을 빼줘야 의도대로 계산할 수 있다.

public class charat숫자받기{
	public static void main(String[] args){

        String str = "12345";
        for(int i=0;i<str.length();i++){
        	System.out.print((str.charAt(i)-'0')+" ");
        	}
            System.out.println();
    }
}

출처:
https://yeoncoding.tistory.com/418
https://gocoder.tistory.com/2412
https://crazykim2.tistory.com/412
https://junghn.tistory.com/entry/자바-int를-자릿수별-int-배열로-분할
https://school.programmers.co.kr/learn/courses/30/lessons/120906

profile
안녕하세요 개발하는 알파카입니다. https://github.com/oh-taehyun

0개의 댓글