프로그래머스 문제풀이/알고리즘 (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 공부기록