본문 바로가기
Computer Science/알고리즘문제

[프로그래머스 - 코딩테스트 연습] 코딩 기초 트레이닝 Lv.0 문제 모음 (Day 5)

by 큌 2024. 8. 3.
반응형

[프로그래머스 - 코딩테스트 연습] Lv.0 코드 처리하기.java

class Solution {
    public String solution(String code) {
        StringBuilder ret = new StringBuilder(); // StringBuilder로 문자열을 생성
        int mode = 0; // 초기 모드는 0으로 설정
        
        for (int idx = 0; idx < code.length(); idx++) {
            char currentChar = code.charAt(idx); // 현재 문자
            
            if (currentChar == '1') {
                // '1'을 만나면 mode를 전환
                mode = 1 - mode;
            } else {
                // 모드에 따라 문자를 추가
                if (mode == 0 && idx % 2 == 0) {
                    ret.append(currentChar);
                } else if (mode == 1 && idx % 2 != 0) {
                    ret.append(currentChar);
                }
            }
        }
        
        // ret이 빈 문자열이면 "EMPTY" 반환, 아니면 ret 반환
        return ret.length() == 0 ? "EMPTY" : ret.toString();
    }
}

 

출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/courses/30/lessons/181932

[프로그래머스 - 코딩테스트 연습] Lv.0 등차수열의 특정한 항만 더하기.java

class Solution {
    public int solution(int a, int d, boolean[] included) {
        int sum = 0; // 합을 저장할 변수

        // included 배열을 순회하면서 각 항의 값을 계산 및 포함 여부를 확인
        for (int i = 0; i < included.length; i++) {
            // 현재 항: a + (i * d)
            int currentTerm = a + i * d;
            
            // included[i]가 true이면 현재 항을 합에 포함
            if (included[i]) {
                sum += currentTerm;
            }
        }
        
        return sum; // 선택된 항들의 합 반환
    }
}

 

출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/courses/30/lessons/181931

[프로그래머스 - 코딩테스트 연습] Lv.0 주사위 게임 2.java

class Solution {
    public int solution(int a, int b, int c) {
        int sum = a + b + c;
        int sumOfSquares = a * a + b * b + c * c;
        int sumOfCubes = a * a * a + b * b * b + c * c * c;
        
        if (a == b && b == c) {
            // 세 숫자가 모두 같은 경우
            return sum * sumOfSquares * sumOfCubes;
        } else if (a == b || b == c || a == c) {
            // 두 숫자가 같고 나머지 하나는 다른 경우
            return sum * sumOfSquares;
        } else {
            // 세 숫자가 모두 다른 경우
            return sum;
        }
    }
}

 

출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/courses/30/lessons/181930

[프로그래머스 - 코딩테스트 연습] Lv.0 원소들의 곱과 합.java

class Solution {
    public int solution(int[] num_list) {
        int sum = 0;        // 원소들의 합
        int product = 1;    // 원소들의 곱

        for (int num : num_list) {
            sum += num;     // 합 계산
            product *= num; // 곱 계산
        }

        // 합의 제곱과 곱 비교
        return product < (sum * sum) ? 1 : 0;
    }
}

 

출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/courses/30/lessons/181929

[프로그래머스 - 코딩테스트 연습] Lv.0 이어 붙인 수.java

class Solution {
    public int solution(int[] num_list) {
        StringBuilder oddNumbers = new StringBuilder();   // 홀수를 이어붙인 문자열
        StringBuilder evenNumbers = new StringBuilder();  // 짝수를 이어붙인 문자열

        for (int num : num_list) {
            if (num % 2 == 0) {
                evenNumbers.append(num); // 짝수인 경우
            } else {
                oddNumbers.append(num);  // 홀수인 경우
            }
        }

        // 문자열을 정수로 변환하여 합산
        int oddSum = oddNumbers.length() > 0 ? Integer.parseInt(oddNumbers.toString()) : 0;
        int evenSum = evenNumbers.length() > 0 ? Integer.parseInt(evenNumbers.toString()) : 0;
        
        return oddSum + evenSum;
    }
}

 

출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/courses/30/lessons/181928

반응형