본문 바로가기

카테고리 없음

#10 <코드카타> 두 수의 나눗셈, 자릿수 더하기, x만큼 간격이 있는 n개의 숫자

문제: 두 수의 나눗셈

정수 num1과 num2가 매개변수로 주어질 때, num1을 num2로 나눈 값에 1,000을 곱한 후 정수 부분을 return 하도록 soltuion 함수를 완성해주세요.

 

1.

class Solution {
    public int solution(int num1, int num2) {
        
        return (double)num1/num2*1000;
    }
}

-->num1이 int형이라 범위를 넘어서면 오버플로우가 발생해 위처럼 double로 형변환 해주고 1000을 곱해주는 방법

 

 

2.

class Solution {
    public int solution(int num1, int num2) {
        
        return num1*1000/num2;
    }
}



--> 간단하게 그냥 1000을 먼저 곱해서 소수점을 살려준다

 

 

 

 

문제: 자릿수 더하기

자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요.
예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다.

 

import java.util.*;

public class Solution {
    public int solution(int n) {
        int sum=0;
        while(n>0){
            sum+=n%10;
            n=n/10;
        }
        return sum;
    }
}


--> sum에 n%10을해서 맨 뒤에 자리 수를 누적 시키고

n=n/10을 통해 맨 뒤에 자리수를 없애준다

 

 

 


문제: x만큼 간격이 있는 n개의 숫자

함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요.

 

class Solution {
    public long[] solution(int x, int n) {
        long[] answer=new long[n];
        long k=x;
        for(int i=0; i<n; i++){
           answer[i] =k;
            k+=x;            
        }
         
        return answer;
    }
}

 

--> int k=x를 통해 k에 x의 초기값 저장(그 반대도 적용됨, x는 초기값이 저장 됨)

k와 x의 역할 바꾸기 (초기에 answer[i]=x, x+=k 였음)