프로그래머스 문제풀이/알고리즘 (JAVA)

[JAVA] 프로그래머스 알고리즘 문제풀이 - Level 0 (206~214번 문제풀이)

남건욱 2023. 10. 20. 14:58
반응형
206. 조건 문자열

문제

class Solution {
    public int solution(String ineq, String eq, int n, int m) {
        if(eq.equals("=")){
            if(ineq.equals(">")){
                if(n >= m) return 1;
                else return 0;
            } else{
                if(n <= m) return 1;
                else return 0;
            }
        } else{
            if(n != m){
                if(ineq.equals(">")){
                    if(n > m) return 1;
                    else return 0;
                } else{
                    if(n < m) return 1;
                    else return 0;
                }
            } else{
                return 0;
            }
        }
    }
}

<작성한 코드>

조건문을 사용했다. eq가 =일 때 >와 <를 비교해 주고 내부에서는 조건식이 맞는지 체크한다. 또한 아래에서는 eq가 =가 아닌! 일 때 비교하도록 했고 우선적으로 n!= m 이 참이면 그 뒤 조건문을 검사했다. n!= m이 참이 아니라면 0을 반환한다.

 

 

 

207. 홀짝에 따라 다른 값 반환하기

문제

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

<작성한 코드>

간단한 문제였다. 홀수라면 answer에 1부터 2씩 증가시킨 수를 더해줬고, 짝수라면 2부터 2씩 더 해서 각 짝수들의 제곱을 answer에 더해주고 반환했다.

 

 

 

208. 공배수

문제

class Solution {
    public int solution(int number, int n, int m) {
        int answer = 0;
        
        if(number%n == 0 && number%m == 0) answer = 1;
        
        return answer;
    }
}

<작성한 코드>

간단한 문제였다. 두 개의 배수가 맞는지 확인하고 둘 다 조건에 만족하면 answer에 1을 대입한다. 만약 아니라면 answer은 0인 상태로 그대로 반환될 것이다.

 

 

 

209. n의 배수

문제

class Solution {
    public int solution(int num, int n) {
        int answer = 0;
        
        if(num%n == 0) answer = 1;
        
        return answer;
    }
}

<작성한 코드>

기본적인 문제다. 배수인지 체크하고 값을 넣어주고 반환한다.

 

 

 

210. 두 수의 연산값 비교하기

문제

class Solution {
    public int solution(int a, int b) {
        String str = ""+a+b;
        int multi = 2 * a * b;
        int answer = 0;
        
        if(Integer.parseInt(str) == multi) return Integer.parseInt(str);
        
        answer = Math.max(Integer.parseInt(str), multi);
        
        return answer;
    }
}

<작성한 코드>

간단한 문제였다. str에는 a, b를 추가해 주고 multi에는 2*a*b를 추가했다. 그 뒤 만약 str을 정수로 변환한 값과 multi의 값이 같으면 str을 정수형으로 바꿔서 반환하고, 아니라면 str의 정수형과 multi 중 더 큰 값을 answer에 대입하고 반환한다.

 

 

211. 더 크게 합치기

문제

class Solution {
    public int solution(int a, int b) {
        int answer = 0;
        String str1 = ""+a+b;
        String str2 = ""+b+a;
        
        answer = Math.max(Integer.parseInt(str1), Integer.parseInt(str2));
        
        return answer;
    }
}

<작성한 코드>

str1에는 a+b, str2에는 b+a를 대입하고 두 수를 정수로 변환한 후 answer에 큰 값을 넣어줬다. 같을 때의 연산을 하지 않는 이유는 Math.max를 했는데 두 값이 같은 경우에는 둘 중 아무 값이나 들어가기 때문에 따로 처리를 안 해줘도 된다.

 

 

 

212. 문자열 곱하기

문제

class Solution {
    public String solution(String my_string, int k) {
        String answer = "";
        
        answer = my_string.repeat(k);
        
        return answer;
    }
}

<작성한 코드>

간단한 문제였다.. repeat(k)를 사용해서 k번만큼 돌려주고 answer에 my_string의 문자열을 더해준다. 그리고 answer을 반환하면 된다.

 

213. 문자 리스트를 문자열로 변환하기

문제

class Solution {
    public String solution(String[] arr) {
        String answer = "";
        
        for(String str : arr){
            answer += str;
        }
        
        return answer;
    }
}

<작성한 코드>

간단한 문제다. foreach문을 사용해서 answer에 str의 값들을 더해주고 반환하였다.

 

 

 

214. 문자열 섞기

문제

class Solution {
    public String solution(String str1, String str2) {
        String answer = "";
        
        for(int i=0; i<str1.length(); i++){
            answer += str1.charAt(i);
            answer += str2.charAt(i);
        }
        
        return answer;
    }
}

<작성한 코드>

간단한 문제다. str1과 str2의 글자들을 각각 차례대로 answer에 더해주고 반환하였다.

반응형
프로필사진

남건욱's 공부기록