subindev 님의 블로그

코딩테스트 2025/09/04 본문

코딩테스트

코딩테스트 2025/09/04

subindev 2025. 9. 11. 14:38

 

2025/09/04(목)

 

기초 문제

 


접미사 배열

import java.util.Arrays;

class Solution {
    public String[] solution(String my_string) {
        int length = my_string.length();
        String[] answer = new String[length];
        
        for(int i=0;i<length;i++){
            answer[i] = my_string.substring(i);
        }
        
        Arrays.sort(answer);
        return answer;
    }
}

 


 

플래그에 따라 다른 값 내보내기

class Solution {
    public int solution(int a, int b, boolean flag) {
        int answer = 0;
        if(flag){
            answer = a+b;
        } else {
            answer= a-b;
        }
        return answer;
    }
}

 


 

n의 배수

class Solution {
    public int solution(int num, int n) {
        int answer = 0;
        
        if(num < 2 || num > 100) {
            throw new IllegalArgumentException("Out of Range");
        }
        if(n < 2 || n > 9) {
            throw new IllegalArgumentException("Out of Range");
        }
        
        if(num%n==0){
            return 1;
        }
        return answer;
    }
}

 


 

글자 이어 문자열 만들기

class Solution {
    public String solution(String my_string, int[] index_list) {
        String answer = "";
        for(int index:index_list){
            answer += my_string.charAt(index);
        }
        return answer;
    }
}

 


 

부분 문자열 이어 붙혀 문자열 만들기

class Solution {
    public String solution(String[] my_strings, int[][] parts) {
        StringBuilder sb = new StringBuilder();
        int length = my_strings.length;
        
        for(int i =0; i<length;i++){
            int start = parts[i][0];
            int end = parts[i][1];
            String result = my_strings[i].substring(start,end+1);
            sb.append(result);
        }
        return sb.toString();
    }
}

 


 

콜라츠 수열 만들기

import java.util.*;

class Solution {
    public int[] solution(int n) {
        List<Integer> list = new ArrayList<>();
        
        while(true){
            list.add(n);
            if(n==1) break;
            n = (n%2==0) ? (n/2) : (3*n+1);
        }
        
        int[] answer = new int[list.size()];
        for(int i=0;i<list.size();i++){
            answer[i] = list.get(i);
        }
        return answer;
    }
}

 


 

수 조작하기 1

class Solution {
    public int solution(int n, String control) {
        int answer = n;
        int length = control.length();
        
        for(int i=0;i<length;i++){
            switch(control.charAt(i)){
                case 'w': answer += 1; break;
                case 's': answer -= 1; break;
                case 'd': answer += 10; break;
                case 'a': answer -= 10; break;
            }
        }
        return answer;
    }
}

 


 

수 조작하기 2

class Solution {
    public String solution(int[] numLog) {
        String answer = "";
        int length = numLog.length;
    
        for(int i=1;i<length;i++){
            int dif = numLog[i] - numLog[i-1];
            switch(dif) {
                case 1: answer += "w"; break;
                case -1: answer += "s"; break;
                case 10: answer += "d"; break;
                case -10: answer += "a"; break;
            }
        }
        return answer;
    }
}

 


 

조건에 맞게 수열 반환하기 3

class Solution {
    public int[] solution(int[] arr, int k) {
        for(int i=0;i<arr.length;i++){
            arr[i] = (k%2==0) ? arr[i] + k : arr[i] * k;
        }
        return arr;
    }
}

 


 

마지막 두 원소

class Solution {
    public int[] solution(int[] num_list) {
        int[] answer = new int[num_list.length + 1];
        int length = num_list.length;
        
        for(int i=0;i<length;i++){
            answer[i] = num_list[i];
        }
        
        answer[length] = (num_list[length-1]>num_list[length-2]) ?  
                    (num_list[length-1] - num_list[length-2]) : (num_list[length-1]*2);
        
        return answer;
    }
}

 


 

주사위 게임2

class Solution {
    public int solution(int a, int b, int c) {
        int answer = 0;
        if(a==b && b==c){
           answer = (a+b+c) * (a*a+b*b+c*c) * (a*a*a+b*b*b+c*c*c);
        }
        else if(a==b || b==c || a==c){
           answer = (a+b+c) * (a*a+b*b+c*c);
        } else {
           answer = a+b+c;
        }
        return answer;
    }
}

 


 

입문 문제

 

 

자연수 뒤집어 배열로 만들기

class Solution {
    public int[] solution(long n) {
        String str = String.valueOf(n);
        int str_length = str.length();
        
        int[] answer = new int[str_length];
        for(int i=0;i<str_length;i++){
            answer[i] = str.charAt(str_length -1 -i) - '0';
        }
        return answer;
    }
}

 


 

가운데 숫자 가져오기

class Solution {
    public String solution(String s) {
        String answer = "";
        int length = s.length();
        if(length %2 != 0) {
            answer += s.charAt(length /2 );
        }
        else{
            answer += s.charAt(length /2 - 1) ;
            answer += s.charAt(length /2);
        }
        return answer;
    }
}

 


 

최댓값과 최솟값

class Solution {
    public String solution(String s) {
        String[] nums = s.split(" ");
        int min = Integer.parseInt(nums[0]);
        int max = Integer.parseInt(nums[0]);
        
        for(int i=1;i<nums.length;i++){
            int num = Integer.parseInt(nums[i]);
            min = Math.min(min, num);
            max = Math.max(max, num);
        }
        return min+" "+max;
    }
}

 

 

'코딩테스트' 카테고리의 다른 글

코딩테스트 2025/09/06  (0) 2025.09.11
코딩테스트 준비 시작 (with 프로그래머스)  (0) 2025.09.11