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

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

남건욱 2023. 10. 9. 13:44
반응형
116. 배열의 원소 삭제하기

문제

import java.util.*;

class Solution {
    public int[] solution(int[] arr, int[] delete_list) {
        
        List<Integer> result = new ArrayList<>();
        
        for(int i=0; i<arr.length; i++){
            result.add(arr[i]);
        }
        
        for(int i=0; i<delete_list.length; i++){
            for(int j=0; j<result.size(); j++){
                if(delete_list[i] == result.get(j)){
                    result.remove(j);
                }
            }
        }
        
        int[] answer = new int[result.size()];
        for(int i=0; i<result.size(); i++){
            answer[i] = result.get(i);
        }
        
        
        return answer;
    }
}

<작성한 코드>

리스트를 하나 선언해 주고 arr안에 있는 값을 모두 대입해 줬다. 그 뒤 for문으로 delete_list의 길이만큼 반복해 주고 내부에서는 delete_list의 값과 result의 값이 일치하면 list에서 해당 값을 지워줬다. 마지막으로 int형 배열 answer에 result안의 값을 초기화시켜 주고 반환하였다.

 

 

 

 

117. 문자열로 변환

문제

class Solution {
    public String solution(int n) {
        String answer = Integer.toString(n);
        
        return answer;
    }
}

<작성한 코드>

간단한 문제였다. 정수 n을 문자열로 변환시켜 대입해 줬다.

 

 

 

118. 두 수의 합

문제

import java.math.*;

class Solution {
    public String solution(String a, String b) {
        String answer = "";
        
        BigInteger bigA = new BigInteger(a);
        BigInteger bigB = new BigInteger(b);
        BigInteger result = bigA.add(bigB);
            
        answer = result.toString();
        
        return answer;
    }
}

<작성한 코드>

처음에는 int로 하려다 범위값 초과로 실패했다. Long형도 마찬가지였다. 그래서 BIgInteger형으로 bigA, bigB를 선언해 준 뒤 결괏값을 구해서 answer에 대입해 줬다. 

 

 

 

119. 0 떼기

문제

class Solution {
    public String solution(String n_str) {
        String answer = "";
        int cnt = 0;
        
        for(int i=0; i<n_str.length(); i++){
            if(n_str.charAt(i) != '0'){
                cnt = i;
                break;
            }
        }
        
        for(int i=cnt; i<n_str.length(); i++){
            answer += n_str.charAt(i);
        }
        
        return answer;
    }
}

<작성한 코드>

첫 번째 for문에서 0이 아닌 문자로 시작될 때 break를 걸어줬고 그 i값을 cnt에 넣어줬다. 두 번째 for문에서는 cnt번째부터 n_str의 끝까지 문자를 대입해 주고 반환하였다.

 

 

 

120. 문자열을 정수로 변환하기

문제

class Solution {
    public int solution(String n_str) {
        int answer = 0;
        
        answer = Integer.parseInt(n_str);
    
        return answer;
    }
}

<작성한 코드>

간단한 문제였다. n_str을 int형으로 바꿔주고 대입하였다.

 

 

 

121. 문자열 정수의 합

문제

class Solution {
    public int solution(String num_str) {
        int answer = 0;
        
        for(int i=0; i<num_str.length(); i++){
            answer += Integer.parseInt(String.valueOf(num_str.charAt(i)));
        }
        
        return answer;
    }
}

<작성한 코드>

num_str의 길이만큼 반복해 줬다. answer에 각 문자를 문자열로 바꿔주고 그 후  정수로 바꿔서 대입해 주고 반환하였다.

 

 

 

122. 정수 부분

문제

class Solution {
    public int solution(double flo) {
        int answer = 0;
        
        answer = (int)flo;
        
        return answer;
    }
}

<작성한 코드>

간단한 문제였다. double형 flo를 int형으로 변환시키면 소수점은 지워진다.

반응형
프로필사진

남건욱's 공부기록