주어진 숫자를 각각 1의 자리로 계산한 후 모두 더하는 문제
문제 접근방식
1. 주어진 변수 N의 총 자릿수를 구한다.
1-1. string 으로 변환한 후 길이를 구하는 방식으로 자릿수를 가져온다.
2. 맨 앞자리가 1로 시작하고 뒤는 0으로 채워질 변수 nn을 하나 만든다.
2-1. 해당 변수의 자릿수는 주어진 변수 N의 자릿수와 동일하다. 이 변수는 아래의 반복문이 한번 실행될 때마다 자릿수가 하나씩 줄어든다.
(ex. N이 123이라면 nn은 100)
3. 반복문을 이용해 nn을 N에 나눠 해당 자리의 숫자값을 answer에 더한다.
(ex. N이 123이고 nn이 100이라면 answer에는 1이 더해진다.)
3-1. answer에 연산된 자리 아래숫자만 N에 남긴다.
(ex. 100의 자릿수를 연산했으니 변수 N에는 23만 남긴다.)
3-2. nn을 10으로 나눠 자릿수를 하나 줄인다.
3-3. 반복
4.answer을 반환한다.
class Solution {
public static void main(String[] args){
Solution my = new Solution();
// TCs
int N = 123; //TC #1
//int N = 987; //TC #2
// Solution output
int output = my.solution(N);
System.out.println(output);
}
public int solution(int N) {
int answer = 0;
int nn = String.valueOf(N).length(); //N을 string으로 변환후 그 값의 자릿수를 저장
int num = 1; //N을 나눌 값
for(int i = 0 ; i < nn - 1 ; i++){
num *= 10; //N의 자릿수만큼 나눌값에 0을 붙임
}
for(int i = 0 ; i < nn ; i++){ //자릿수만큼 반복
answer += N / num; //해당 자릿수의 값을 answer에 더함
N = N%num; //계산된 자릿수만큼 뺌
num /= 10; //나눌 값에 0을 뺌
}
return answer;
}
}
'개?발 > 프로그래머스' 카테고리의 다른 글
정수 제곱근 판별 (Java - Math.sqrt) (0) | 2024.07.31 |
---|---|
자연수 뒤집어 배열로 만들기(Java) (0) | 2024.07.30 |
문자열 내 p와 y의 개수 (0) | 2024.07.05 |
두 정수 사이의 합 (0) | 2024.07.05 |
대충 만든 자판(java) (0) | 2024.05.30 |