07.31 pre-edu

Inabang·2021년 7월 31일
0

알고리즘

목록 보기
2/9

기초 알고리즘 Part 1

9.직사각형 별찍기

이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어진다.
별(*)문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태를 출력해보자.

import java.util.Scanner;
public class Solution {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        int b = sc.nextInt();
        for (int i = 0; i < b; i++){
            for (int j = 0; j < a; j++){
                System.out.print("*");
            }
            System.out.println();
        }
    }
}

10. 평균구하기

정수를 담고 있는 배열 arr의 평균값을 return하는 함수를 완성하라.

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

11.행렬의 덧셈

행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 된다. 2개의 행렬 arr1과 arr2를 입력받아 행렬 덧셈 결과를 반환하는 함수를 만들어라.

class Solution {
    public int[][] solution(int[][] arr1, int[][] arr2) {
        int[][] answer = {};
        answer = new int[arr1.length][arr1[0].length];
        for(int i = 0; i < arr1.length; i++){
            int[] temp = arr1[i];
            for(int j = 0; j < temp.length; j++){
                answer[i][j] = arr1[i][j] + arr2[i][j];
            }
        }
        return answer;
    }
}

12.짝수와 홀수

정수 num이 짝수일 경우 "Even"을 반환하고 홀수인 경우 "Odd"를 반환하는 함수를 완성하라.

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

13.자릿수 더하기

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

public class Solution {
    public int solution(int n) {
        int answer = 0;
        char[] tempch = (Integer.toString(n)).toCharArray();
        for(int i = 0; i < tempch.length; i++){
            answer += tempch[i] - 48;
        }
        return answer;
    }
}

14.최대공약수와 최소공배수

두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수를 완성하라.
배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면된다.

class Solution {
    public int[] solution(int n, int m) {
        int[] answer = {};
        answer = new int[2];
        int gcd = 0;
        int lcm = 0;
        int a = n; 
        int b = m;
        while(true){
            int r = a % b;
            if(r == 0){
                gcd = b;
                break;
            }
            a = b;
            b = r;
        }
        answer[0] = gcd;
        answer[1] = (n * m) / gcd;
        return answer;
    }
}

15. 정수 제곱근 판별

임의의 양의 정수 n에 대해 n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 한다.
n이 양의 정수 x의 제곱이면 x + 1의 제곱을 return하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하라.

class Solution {
    public long solution(long n) {
        long answer = 0;
        double temp = Math.sqrt(n);
        if (temp - (int)temp == 0.0 ){
            answer =  (long)temp;
            answer++;
            answer *= answer;
        } else {
            answer = -1;
        }
        return answer;
    }
}

기초 알고리즘 Part 2

0개의 댓글

Powered by GraphCDN, the GraphQL CDN