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

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

남건욱 2023. 9. 21. 11:29

목차

    반응형
    25. 짝수 홀수 개수

    문제

    class Solution {
        public int[] solution(int[] num_list) {
            int[] answer = new int[2];
            int cnt=0;
            int cnt2=0;
            
            for(int a : num_list){
                if(a%2 == 0) cnt++;
                else cnt2++;
            }
            
            answer[0] = cnt;
            answer[1] = cnt2;
            
            
            return answer;
        }
    }

    <작성한 코드>

    num_list의 원소들을 하나씩 꺼내서 a에 넣어주었고 값을 검증했다. 만약 짝수면 cnt를 1 증가, 홀수면 cnt2를 1 증가시켜서 각각의 개수를 구한 뒤 answer에 넣어주었다.

     

     

     

     

    26. 문자 반복 출력하기

    문제

    class Solution {
        public String solution(String my_string, int n) {
            StringBuilder answer = new StringBuilder();
            
            for(int i=0; i<my_string.length(); i++){
                for(int j=0; j<n; j++){
                    answer.append(my_string.charAt(i));
                }
            }
            
            return answer.toString();
        }
    }

    <작성한 코드>

    0부터 입력받은 배열의 길이만큼 반복문을 설정하고 그 안에서 0부터 입력받은 n까지 한번더 반복하도록 하였다. answer을 StringBuilder으로 선언해 주었고 배열의 첫 번째 값부터 n번만큼 추가해 주고 toString을 통해 문자열로 만들어서 반환했다.

     

     

     

    27. 특정 문자 제거하기

    문제

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

    <작성한 코드>

    my_string의 길이만큼 반복해주도록 for문을 만들어준 뒤, my_string의 첫 번째 값과 letter의 문자가 일치하지 않을 때만 answer안에 my_string의 i번째 값을 넣어주었다.

     

     

     

    28. 각도기

    문제

    class Solution {
        public int solution(int angle) {
            int answer = 0;
            
            if(angle < 90) answer = 1;
            else if(angle == 90) answer = 2;
            else if(angle < 180) answer = 3;
            else if(angle == 180) answer = 4;
            else answer = 0;
            
            return answer;
        }
    }

    <작성한 코드>

    if-else 를 사용해서 조건에 맞도록 answer값을 반환하였다.

     

     

     

    29. 양꼬치

    문제

    class Solution {
        public int solution(int n, int k) {
            int answer = 0;
            int service = (int) n/10;
            
            answer = 12000*n + 2000*(k-service);
            
            return answer;
        }
    }

    <작성한 코드>

    서비스 음료수 개수를 미리 n/10으로 구해주었다. 그 후 양꼬치값*n + 음료수값*(k-서비스음료수)를 해주고 반환하였다.

     

     

     

    30. 짝수의 합

    문제

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

    <작성한 코드>

    for문으로 n번을 돌리고 그중 짝수일때만 값을 더해서 반환하였다.

     

     

     

    31. 배열 자르기

    문제

    class Solution {
        public int[] solution(int[] numbers, int num1, int num2) {
            int[] answer = new int[num2 - num1 + 1];
            
            for(int i=0; num1<=num2; num1++, i++){
                answer[i] = numbers[num1];
            }
            
            return answer;
        }
    }

    <작성한 코드>

    answer배열의 길이는 num2-num1을 해준 뒤 +1을 해주어 개수를 맞춰주었다. 그 후 for문으로 num1부터 num2만큼 배열을 반복해 주었고 num1, i를 1씩 증가시켜 가며 answer [i]에 numbers [num1]에 있는 값을 대입해 주었다.

     

     

     

    32. 외계행성의 나이

    문제

    class Solution {
        public String solution(int age) {
            String answer = "";
            
            while(age > 0){
                int a = age%10;
                char ch = (char)('a' + a);
                answer = ch + answer;
                age /=10;
            }
            
            return answer;
        }
    }

    <작성한 코드>

    age가 0보다 크면 while이 실행되게 했다. 우선 age를 10으로 나눠서 나머지를 가져온 뒤 일의 자릿수부터 구했다. 변수 ch에 'a' + a를 해줘서 숫자에 맞는 알파벳을 대입했다. 그 후 배열 answer에 ch + answer을 해줘서 자릿수에 맞도록 설정해준 뒤 age/10을 해줘서 다음 자릿수로 이동해 주었다. 

    반응형
    프로필사진

    남건욱's 공부기록