[프로그래머스 코딩테스트 연습문제] 자릿수 더하기 문제 풀이 with 자바스크립트(Javascript) & 자바(Java)

Re_Go·2024년 6월 28일
0

코딩테스트연습

목록 보기
85/106
post-thumbnail

1. 첫번째 문제 풀이(2024-06-28)

해당 문제는 문자를 문자열로 변환해준 후 그 길이만큼 for문을 돌리면서 누적 연산을 시켜주는 굉장히 간단한 문제인데요.

다만 문자열로 바꾼 후 직접적인 접근이 가능한 JS에 비해, 자바에서의 문자열은 불변 객체의 특성 때문에 배열의 각 요소에 접근하는 것이 어려운데요. 아무튼 이러한 점을 고려하여 각 코드를 작성했습니다.

그럼 해당 공식을 적용한 자바스크립트 버전을 소개해 드리겠습니다.

  1. 자바스크립트 버전
function solution(n)
{
    let answer = 0;
  	// toString으로 숫자를 문자열 변환
    n = n.toString();
   
  	// for문을 이용해 문자열에 직접 접근하여 누적 연산 가능
    for(let i = 0 ; i < n.length ; i++){
        answer += parseInt(n[i]);
    }

    return answer;
}

그리고 자바 버전으로 구현한 코드는 다음과 같습니다.

  1. 자바 버전
import java.util.*;

public class Solution {
    public int solution(int n) {
        int answer = 0;
        // 숫자를 문자열로 변환
        String numStr = String.valueOf(n); // 숫자를 문자열로 변환
 	
		// for문을 돌리면서 charAt 메서드를 이용해 문자열의 문자들을 저장
        for (int i = 0; i < numStr.length(); i++) {
            char c = numStr.charAt(i); // 문자열에서 한 글자씩 가져옴	// 꺼낸 문자들은 여전히 char 타입이므로 getNumericValue 메서드로 원형 그대로 정수 변환 후 누적 연산
            answer += Character.getNumericValue(c); // 문자를 숫자로 변환하여 더함
        }
       
        return answer;
    }
}

2. 자바와 자바스크립트 풀이 차이점

  1. JS의 경우 앞서 말한대로 배열의 직접적인 접근이 가능하여 손 쉽게 연산할 수 있었지만, 자바의 경우 배열처럼 대괄호를 이용해 문자열의 각 요소에 집적적으로 접근하는 것을 불허하기 때문에 단골 메서드인 charAt을 이용하여 문자열 -> 문자 -> 정수 순으로 변환을 해야하는 번거로움이 존재했습니다.
profile
인생은 본인의 삶을 곱씹어보는 R과 타인의 삶을 배워 나아가는 L의 연속이다.

0개의 댓글