본문 바로가기
코딩테스트 연습

Programmers 자릿수 더하기 Level 1

by 동배_ 2021. 9. 11.

문제 설명

https://programmers.co.kr/learn/courses/30/lessons/12931

문제 설명길이가 n이고, "수박수박수박수...."와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 "수박수박"을 리턴하고 3이라면 "수박수"를 리턴하면 됩니다.제한 조건

  • n은 길이 10,000이하인 자연수입니다.

문제 해석 및 풀이 방법

1. 정수 n을 문자 배열로 변경한다.

3. 그후 for문을 통해 문자 배열 값 하나씩을 정수로 더해준다.

4. 정답을 반환한다.

 

내가 작성한 소스코드(Java)

public class Solution {
    public int solution(int n) {
        int answer = 0;
        char[] convertString = String.valueOf(n).toCharArray();
        for(int i=0;i<convertString.length;i++){
            answer += convertString[i] - 48; //숫자를 뺼셈 할때 아스키코드에서 48을빼주면 숫자가 나옴
        }

        return answer;
    }
}

정수 n을 char배열로 변경해준후 for문으로 배열크기만큼 반복해준다.

그리고 배열의 인덱스의 값마다 answer을 더해준다 이때 값이 아스키코드로 되어 있으므로 

48을 빼주어 현재 숫자로 변경해준다.

결론 및 고찰

문제 자체는 이해하기 쉬웠으나 String을 char배열로 변경하는 함수를 몰라 찾아본다고 시간이 좀걸렸다.

그리고 아스키코드 48을 빼는 부분도 잘 몰랐었고 Level 1이 정말 쉬운 문제들이지만 이런 경우가 종종있어

유용한 것 같다. 

 

소요 시간 10

댓글