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

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

남건욱 2023. 9. 30. 06:31

목차

    반응형
    82. 편지

    문제

    class Solution {
        public int solution(String message) {
            int answer = 0;
            
            answer = 2 * message.length();
            
            return answer;
        }
    }

    <작성한 코드>

    풀면서도 의심했다. 그냥 2만 곱해주면 됐다. 쉬어가기 문제인가 보다.

     

     

     

     

     

    83. 가장 큰 수 찾기

    문제

    import java.util.*;
    
    class Solution {
        public int[] solution(int[] array) {
            int[] answer = new int[2];
            int max = array[0];
            answer[0] = array[0];
            answer[1] = 0;
            
            
            for(int i=1; i<array.length; i++){
                if(array[i] > max){
                    max = array[i];
                    answer[0] = max;
                    answer[1] = i;
                }
            }
            
            return answer;
        }
    }

    <작성한 코드>

    크기를 비교해야 하기 때문에 0번째엔 array의 첫 값, 1번째엔 현재원소위치를 대입 후 for문으로 비교를 해줬다. array [i]가 max보다 크면 max값을 교환해 줬다. 그 후 반환해 줬다.

     

     

     

     

     

    84. 문자열 계산하기

    문제

    class Solution {
        public int solution(String my_string) {
            String[] result = my_string.split(" ");
            int answer = Integer.parseInt(result[0]);
    
            for (int i = 1; i < result.length; i += 2) {
                String op = result[i];
                int opInt = Integer.parseInt(result[i + 1]);
    
                switch (op) {
                    case "+":
                        answer += opInt;
                        break;
                    case "-":
                        answer -= opInt;
                        break;
                }
            }
    
            return answer;
        }
    }

    <작성한 코드>

    my_string을 공백기준으로 나눠서 String형 배열에 넣어줬다. 그 후 answer에 첫 번째 값을 result의 첫 번째 값으로 초기화해 준 뒤 반복문으로 1부터 result의 길이만큼 반복해 줬다. i를 2씩 더하는 이유는 숫자 사이에 기호가 있을 거 기 때문에 2씩 더해서 기호만 따로 뺴주고 계산해 줬다. op값이 +면 다음에 나올 수를 현재 answer값에 더해주고 -면 다음에 나올 수를 현재 answer값에서 빼줬다.

     

     

     

     

     

    85. 배열의 유사도

    문제

    class Solution {
        public int solution(String[] s1, String[] s2) {
            int answer = 0;
            
            for(int i=0; i<s1.length; i++){
                for(int j=0; j<s2.length; j++){
                    if(s1[i].equals(s2[j])) answer++;
                }
            }
            
            return answer;
        }
    }

    <작성한 코드>

    간단한 문제였다. s1와 s2를 모두 돌며 같은 수가 있으면 answer에 ++를 해주고 반환하였다.

     

     

     

     

    86. 숫자 찾기

    문제

    class Solution {
        public int solution(int num, int k) {
            int answer = -1;
            String result = Integer.toString(num);
            
            for(int i=0; i<result.length(); i++){
                if(result.charAt(i) == (char)(k+'0')){
                    answer = i+1;
                    return answer;
                }
            }
            
            return answer;
        }
    }

    <작성한 코드>

    기본값을 -1로 설정해 줬다. 그리고 num을 string으로 변경해 주고 그 길이만큼 for문으로 돌렸다. 각 수중 k와 같은 값이 있으면 answer에 i+! 을 해주고 answer를 리턴하였다.(char)(k+'0')을 해준 이유는 k는 int형이니 문자형으로 바꾸고 '0'을 더해서 비교가 가능하도록 했다.

     

     

     

    87. n의 배수 고르기

    문제

    import java.util.*;
    
    class Solution {
        public int[] solution(int n, int[] numlist) {
            List<Integer> list = new ArrayList<>();
            
            for(int i=0; i<numlist.length; i++){
                if(numlist[i] % n == 0) list.add(numlist[i]);
            }
            
            int[] answer = new int[list.size()];
            
            for(int i=0; i<list.size(); i++){
                answer[i] = list.get(i);
            }
            
            
            return answer;
        }
    }

    <작성한 코드>

    정수형 list를 하나 만들어줬다. 그 후 for문으로 n의 배수일 때 list에 추가했고 이 list의 길이만큼 정수형 배열 answer를 선언해서 값을 넣어줬다.

     

     

     

    88. 자릿수 더하기

    문제

    class Solution {
        public int solution(int n) {
            int answer = 0;
            String result = Integer.toString(n);
            
            for(int i=0; i<result.length(); i++){
                answer += Character.getNumericValue(result.charAt(i));
            }
            
            return answer;
        }
    }

    <작성한 코드>

    수를 string형식으로 변환 후 길이만큼 반복해 줬다. answer에 각 자릿수의 문자를 숫자로 바꾼 후 더해주고 반환해 주었다.

    반응형
    프로필사진

    남건욱's 공부기록