바위 뚫는중

[프로그래머스] Lv1. 나머지가 1이 되는 수 찾기, 약수의 합, 자릿수 찾기, 평균 구하기, 짝수와 홀수, x만큼 간격이 있는 n개의 숫자 본문

Algorithms/프로그래머스

[프로그래머스] Lv1. 나머지가 1이 되는 수 찾기, 약수의 합, 자릿수 찾기, 평균 구하기, 짝수와 홀수, x만큼 간격이 있는 n개의 숫자

devran 2023. 8. 21. 15:33
반응형

나머지가 1이 되는 수 찾기

문제 설명

자연수 n이 매개변수로 주어집니다. n을 x로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x를 return 하도록 solution 함수를 완성해주세요. 답이 항상 존재함은 증명될 수 있습니다.

코드

//n을x로 나눈

class Solution {
    public int solution(int n) {
        int answer = 0;
        
        for(int i = 2; i < n; i++){
            //나머지가 1이라면
            if( n % i == 1) {
                answer = i;
                break;
            }
        }
        
        
        return answer;
    }
}

약수의 합

문제 설명

정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요.

코드

class Solution {
    public int solution(int n) {
        int answer = 0;
        
        for(int i = 1; i <= n; i ++) {
            if(n%i == 0) {
                answer += i;
            }
        }
        
        return answer;
    }
}

자릿수 더하기

문제 설명

자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요.

예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다.

코드

import java.util.*;

public class Solution {
    public int solution(int n) {
        int answer = 0;
        String str = Integer.toString(n);
        String arr[] = str.split("");
        for(String a : arr){
            answer += Integer.parseInt(a);
        }
        return answer;
    }
}

평균 구하기

문제 설명

정수를 담고 있는 배열 arr의 평균값을 return하는 함수, solution을 완성해보세요.

코드

class Solution {
    public double solution(int[] arr) {
        double answer = 0;
        int length = arr.length;
        double sum = 0;
        for(int i= 0; i < length; i++) {
            sum += arr[i];
        }

        answer = sum / length;
        return answer;
    }
}

double은 double로 나누어주어야 소수점 표현가능!!

짝수와 홀수

문제 설명

정수 num이 짝수일 경우 "Even"을 반환하고 홀수인 경우 "Odd"를 반환하는 함수, solution을 완성해주세요.

코드

class Solution {
    public String solution(int num) {
        String answer = "";
        if(num%2==0){
            answer = "Even";
        }
        else{
            answer = "Odd";
        }
        return answer;
    }
}

X만큼 간격이 있는 n개의 숫자

문제 설명

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

코드

class Solution {
    public long[] solution(long x, int n) {
        long[] answer = new long[n];
     
        //0부터 n-1까지
        for(int i = 0; i < n; i ++) {
            answer[i] = x + (x * i);
        }
        return answer;
    }
}

테케 오버플로우에 주의하고 long으로 주어졌으므로 주어지는 숫자 x또한 long으로 수정한다!!

자연수를 뒤집어 배열로 만들기

문제 설명

자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다.

코드

import java.util.*;

class Solution {
    public int[] solution(long n) {
        int[] answer = {};
        String arr = Long.toString(n);
        answer = new int[arr.length()];
        for(int i = arr.length()-1; i >= 0; i--){
            answer[arr.length()-1-i] = arr.charAt(i)-'0';
        }
        
        return answer;
    }
}
반응형