본문 바로가기

study_IT/알고리즘 노트

[programmers] 코딩테스트 입문 Day 2

728x90
반응형

1. 두 수의 나눗셈

class Solution {
    public int solution(int num1, int num2) {
        int answer = 0;
        
        float a = num1;
        float b = num2;
        
        float result = ( a / b ) * 1000;
        
        answer = (int) result;
        
        return answer;
    }
}

2. 숫자 비교하기

class Solution {
    public int solution(int num1, int num2) {
        int answer = 0;
        
        int a = num1;
        int b = num2;
        
        if(a == b){
            answer = 1;
        } else {
            answer = -1;
        }
        
        return answer;
    }
}

3. 분수의 덧셈(기약분수)

기약분수로 나타내려면 분자와 분모의 최대공약수를 구한 후에 각각을 최대공약수로 나누어주어야 한다.

class Solution {
    public int[] solution(int numer1, int denom1, int numer2, int denom2) {
        int[] answer = new int[2];
        
        int son1 = numer1;
        int mom1 = denom1;
        int son2 = numer2;
        int mom2 = denom2;
        
        // 분자와 분모의 최대공약수 계산
        int gcd = findGCD((son1 * mom2) + (mom1 * son2), mom1 * mom2);
        
        // 기약분수로 나타내기
        answer[0] = ((son1 * mom2) + (mom1 * son2)) / gcd;
        answer[1] = (mom1 * mom2) / gcd;
        
        return answer;
    }
    
    // 최대공약수를 구하는 메소드
    private int findGCD(int a, int b) {
        while (b != 0) {
            int temp = b;
            b = a % b;
            a = temp;
        }
        return a;
    }
}

4. 배열 두 배 만들기

class Solution {
    public int[] solution(int[] numbers) {
        int[] answer = new int[numbers.length];
        
        for(int i=0; i<numbers.length; i++){
            answer[i] = numbers[i] * 2;
        }
        
        return answer;
    }
}
728x90
반응형