반응형

▶  참고 지식  ◀

 

https://ko.wikipedia.org/wiki/%EC%9C%A0%ED%81%B4%EB%A6%AC%EB%93%9C_%ED%98%B8%EC%A0%9C%EB%B2%95

 

유클리드 호제법 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 유클리드 호제법(-互除法, Euclidean algorithm) 또는 유클리드 알고리즘은 2개의 자연수 또는 정식(整式)의 최대공약수를 구하는 알고리즘의 하나이다. 호제법이란

ko.wikipedia.org

 

▶  문제 설명  ◀

 

두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요.

배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다.

예를 들어 두 수 3, 12의 최대공약수는 3, 최소공배수는 12이므로 solution(3, 12)는 [3, 12]를 반환해야 합니다.

 

 

▶  제한 사항  ◀

 

˙두 수는 1이상 1000000이하의 자연수입니다.

 

class Solution {
    public int[] solution(int n, int m) {
        int[] answer = new int[2];
        int num1 = 0;
        int num2 = 0;
        if(n>m){
        	num1 = n;
        	num2 = m;
        }else{
        	num1 = m;
        	num2 = n;
        }
        
    	int div1 = num1; 
    	int div2 = num2; 
    	while(true){
    		if(div1%div2 == 0){
    			answer[0] = div2;
    			break;
    		}
    		int temp = div1;
    		div1 = div2;
    		div2 = temp%div2;
    		
    	}
        	
        answer[1] = num1 * num2 / answer[0];
        return answer;
    }
    
}
반응형
반응형

▶  문제 설명  ◀

 

사용언어 : JAVA

 

점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다.

다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다.

학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번호의 학생이나 바로 뒷번호의 학생에게만 체육복을 빌려줄 수 있습니다.

예를 들어, 4번 학생은 3번 학생이나 5번 학생에게만 체육복을 빌려줄 수 있습니다.

체육복이 없으면 수업을 들을 수 없기 때문에 체육복을 적절히 빌려 최대한 많은 학생이 체육수업을 들어야 합니다.

전체 학생의 수 n, 체육복을 도난당한 학생들의 번호가 담긴 배열 lost,

여벌의 체육복을 가져온 학생들의 번호가 담긴 배열 reserve가 매개변수로 주어질 때,

체육수업을 들을 수 있는 학생의 최댓값을 return 하도록 solution 함수를 작성해주세요.

 

 

▶  제한 사항  ◀

 

˙전체 학생의 수는 2명 이상 30명 이하입니다.

˙ 체육복을 도난당한 학생의 수는 1명 이상 n명 이하이고 중복되는 번호는 없습니다.

˙ 여벌의 체육복을 가져온 학생의 수는 1명 이상 n명 이하이고 중복되는 번호는 없습니다.

˙ 여벌 체육복이 있는 학생만 다른 학생에게 체육복을 빌려줄 수 있습니다.

˙ 여벌 체육복을 가져온 학생이 체육복을 도난당했을 수 있습니다.

     이때 이 학생은 체육복을 하나만 도난당했다고 가정하며, 남은 체육복이 하나이기에 다른 학생에게는 체육복을 빌려줄 수 없습니다.

 

class Solution {
    public int solution(int n, int[] lost, int[] reserve) {
    	int answer = n - lost.length;
    	
    	for(int i=0; i<reserve.length; i++){
    		for(int j=0; j<lost.length; j++){
    			if(reserve[i] == lost[j]){
    				reserve[i] = -1;
    				lost[j] = -1;
    				answer += 1;
    				break;
    			}
    		}
    	}
    	
    	for(int i=0; i<reserve.length; i++){
    		for(int j=0; j<lost.length; j++){
    			if(reserve[i] - 1 == lost[j] || reserve[i] + 1 == lost[j]){
    				answer++;
    				reserve[i] = -1;
    				lost[j] = -1;
    			}
    		}
    	}
        return answer;
    }
}
반응형
반응형

▶  문제 설명  ◀

 

사용언어 : JAVA

 

행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다.

2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요.

 

▶  제한 사항  ◀

 

˙행렬 arr1, arr2의 행과 열의 길이는 500을 넘지 않습니다.

 

import java.util.ArrayList;
class Solution {
    public int[][] solution(int[][] arr1, int[][] arr2) {
    	int[][] answer = new int[arr1.length][arr1[0].length];

    	for(int i=0; i<arr1.length; i++){
    		ArrayList<Integer> temp = new ArrayList<Integer>();
    		
    		for(int j=0; j<arr1[i].length; j++){
    			int a = arr1[i][j] + arr2[i][j];
    			answer[i][j] = a;
    		}
    		
       	}
		return answer;
    }
}

 

반응형
반응형

※ 본 내용은 완전한 정답이 아닐 수 있고 개인의 기준에 맞춰 작성한 코드입니다. 참고만 해주세요 ! 

 

▶  문제 설명  ◀

 

사용언어 : ORACLE

 

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과  같으며,

ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의

아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다.

동물 보호소에 가장 먼저 들어온 동물의 이름을 조회하는 SQL 문을 작성해주세요.

 

<ANIMAL_INS TABLE>

SELECT *
FROM (SELECT NAME
      FROM ANIMAL_INS
      ORDER BY DATETIME)
WHERE ROWNUM = 1;
반응형
반응형

※ 본 내용은 완전한 정답이 아닐 수 있고 개인의 기준에 맞춰 작성한 코드입니다. 참고만 해주세요 ! 

 

▶  문제 설명  ◀

 

사용언어 : JAVA

 

정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요.

단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요.

예를들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴 하고, [10]면 [-1]을 리턴 합니다.

 

▶  제한 사항  ◀

 

˙ arr은 길이 1 이상인 배열입니다.

˙ 인덱스 i, j에 대해 i ≠ j이면 arr[i] ≠ arr[j] 입니다.

 

import java.util.*;
class Solution {
    public int[] solution(int[] arr) {
        ArrayList<Integer> arr1 = new ArrayList<>();

        int[] minarr = Arrays.copyOf(arr, arr.length);
        Arrays.sort(minarr);
        int min = minarr[0];
        
        if(minarr[0] == minarr[minarr.length-1]){
            arr1.add(-1);
        }else{
            for(int i=0; i<arr.length; i++){
                if(arr[i] != min){
                    arr1.add(arr[i]);
                }
            }
        }
        
         int[] answer = new int[arr1.size()];
        for (int i=0; i < answer.length; i++)
        {
            answer[i] = arr1.get(i).intValue();
        }
        return answer;
    }
}
반응형
반응형

※ 본 내용은 완전한 정답이 아닐 수 있고 개인의 기준에 맞춰 작성한 코드입니다. 참고만 해주세요 !

 

▶  문제 설명  ◀

 

사용언어 : JAVA

 

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

 

 

▶  제한 사항  ◀

 

˙ num은 int 범위의 정수입니다.

˙ 0은 짝수입니다.

 

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

※ 본 내용은 완전한 정답이 아닐 수 있고 개인의 기준에 맞춰 작성한 코드입니다. 참고만 해주세요 !

 

▶  문제 설명  ◀

 

사용언어 : JAVA

 

1937년 Collatz란 사람에 의해 제기된 이 추측은, 주어진 수가 1이 될때까지 다음 작업을 반복하면, 모든 수를 1로 만들 수 있다는 추측입니다.

작업은 다음과 같습니다.

1-1. 입력된 수가 짝수라면 2로 나눕니다.

1-2. 입력된 수가 홀수라면 3을 곱하고 1을 더합니다.

2. 결과로 나온 수에 같은 작업을 1이 될 때까지 반복합니다.

예를 들어, 입력된 수가 6이라면 6→3→10→5→16→8→4→2→1 이 되어 총 8번 만에 1이 됩니다.

위 작업을 몇 번이나 반복해야하는지 반환하는 함수, solution을 완성해 주세요. 단, 작업을 500번을 반복해도 1이 되지 않는다면 –1을 반환해 주세요.

 

 

▶  제한 사항  ◀

 

˙ 입력된 수, num은 1 이상 8000000 미만인 정수입니다.

 

class Solution {
    public int solution(int num) {
        
        double answer = 0;
        for(answer = 0; answer < 500; answer++){
        	if(num%2 == 0){
        		num /= 2.0;
        	}
        	else{
        		if(num == 1){
        			break;
        		}
        		num *= 3.0;
                num++;
        	}
        }
        if(num != 1){
        	answer = -1;
        }
        return (int)answer;
    }
}
반응형
반응형

※ 본 내용은 완전한 정답이 아닐 수 있고 개인의 기준에 맞춰 작성한 코드입니다. 참고만 해주세요 !

 

▶  문제 설명  ◀

 

사용언어 : JAVA

 

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

 

 

▶  제한 사항  ◀

 

˙ arr은 길이 1 이상, 100 이하인 배열입니다.

˙ arr의 원소는 -10,000 이상 10,000 이하인 정수입니다.

 

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

+ Recent posts