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

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

by 큌 2024. 8. 3.
반응형

[프로그래머스 - 코딩테스트 연습] Lv.0 마지막 두 원소.java

class Solution {
    public int[] solution(int[] num_list) {
        // num_list의 길이
        int n = num_list.length;
        
        // 결과 배열을 기존 배열의 크기 + 1로 초기화
        int[] answer = new int[n + 1];
        
        // 기존 배열 원소 복사
        for (int i = 0; i < n; i++) {
            answer[i] = num_list[i];
        }
        
        // 마지막 원소와 그 전 원소
        int last = num_list[n - 1];
        int secondLast = num_list[n - 2];
        
        // 조건에 따라 새로운 원소 추가
        if (last > secondLast) {
            answer[n] = last - secondLast;
        } else {
            answer[n] = last * 2;
        }
        
        return answer;
    }
}

 

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

[프로그래머스 - 코딩테스트 연습] Lv.0 수 조작하기 1.java

class Solution {
    public int solution(int n, String control) {
        // 문자열 control의 각 문자를 순회
        for (char c : control.toCharArray()) {
            // 문자에 따라 n을 업데이트
            switch (c) {
                case 'w':
                    n += 1;
                    break;
                case 's':
                    n -= 1;
                    break;
                case 'd':
                    n += 10;
                    break;
                case 'a':
                    n -= 10;
                    break;
                default:
                    // 잘못된 문자가 들어올 경우, 아무것도 하지 않음
                    break;
            }
        }
        // 최종 값 반환
        return n;
    }
}

 

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

[프로그래머스 - 코딩테스트 연습] Lv.0 수 조작하기 2.java

class Solution {
    public String solution(int[] numLog) {
        StringBuilder answer = new StringBuilder();

        for (int i = 1; i < numLog.length; i++) {
            int difference = numLog[i] - numLog[i - 1];

            switch (difference) {
                case 1:
                    answer.append("w");
                    break;
                case -1:
                    answer.append("s");
                    break;
                case 10:
                    answer.append("d");
                    break;
                case -10:
                    answer.append("a");
                    break;
            }
        }

        return answer.toString();
    }
}

 

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

[프로그래머스 - 코딩테스트 연습] Lv.0 수열과 구간 쿼리 3.java

class Solution {
    public int[] solution(int[] arr, int[][] queries) {
        // 쿼리 배열의 각 쿼리를 순회
        for (int[] query : queries) {
            int i = query[0];  // 첫 번째 인덱스
            int j = query[1];  // 두 번째 인덱스
            
            // 인덱스 i와 j의 값을 서로 교환
            int temp = arr[i]; // 인덱스 i의 값을 임시로 저장
            arr[i] = arr[j];  // 인덱스 j의 값을 인덱스 i에 저장
            arr[j] = temp;    // 임시로 저장한 값을 인덱스 j에 저장
        }
        
        // 처리된 배열을 반환
        return arr;
    }
}

 

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

[프로그래머스 - 코딩테스트 연습] Lv.0 수열과 구간 쿼리 2.java

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

class Solution {
    public int[] solution(int[] arr, int[][] queries) {
        // 결과를 저장할 배열
        int[] answer = new int[queries.length];

        // 각 쿼리를 순회
        for (int q = 0; q < queries.length; q++) {
            int s = queries[q][0];
            int e = queries[q][1];
            int k = queries[q][2];
            
            // k보다 큰 값들을 저장할 리스트
            List<Integer> greaterThanK = new ArrayList<>();
            
            // 인덱스 s부터 e까지 확인
            for (int i = s; i <= e; i++) {
                if (arr[i] > k) {
                    greaterThanK.add(arr[i]);
                }
            }
            
            // 리스트가 비어 있지 않으면, 가장 작은 값 찾기
            if (!greaterThanK.isEmpty()) {
                answer[q] = greaterThanK.stream().min(Integer::compareTo).get();
            } else {
                answer[q] = -1;
            }
        }
        
        return answer;
    }
}

 

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

반응형