본문으로 바로가기
728x90
반응형

목차

     

     

    배열 두 배 만들기

    class Solution {
        public int[] solution(int[] numbers) {
            int[] answer = new int[numbers.length];
    
            for (int i = 0; i < numbers.length; i++) {
                answer[i] = numbers[i] * 2;
            }
    
            return answer;
        }
    }
    

     

    짝수는 싫어요

    첫 번째 시도

    class Solution {
        public int[] solution(int n) {
            int count = 0;
            for (int i = 1; i <= n; i++) {
                if (i % 2 != 0) {
                    count += 1;
                }
            }
    
            int[] answer = new int[count];
            int count2 = 0;
            for (int i = 1; i <= n; i++) {
                if (i % 2 != 0) {
                    answer[count2] = i;
                    count2++;
                }
            }
            return answer;
        }
    }
    
    • 배열의 초기화를 위해 한번 짝수의 개수가 얼마나되는지 구한다.
    • 앞에서 구한 짝수의 개수를 다시 배열을 초기화하는데 사용한다.
    • 그리고 다시 짝수의 개수를 구한다.

    두 번째 시도

    class Solution {
        public int[] solution(int n) {
    
            // 홀수의 개수를 구하는 방법
            int count_odds = 0;
            if (n % 2 != 0) { // n이 짝수일 떄
                count_odds = (n / 2) + 1;
            } else { // n이 홀수일 때
                count_odds = (n / 2);
            }
    
            int[] answer = new int[count_odds];
            int count2 = 0;
            for (int i = 1; i <= n; i++) {
                if (i % 2 != 0) {
                    answer[count2] = i;
                    count2++;
                }
            }
            return answer;
        }
    }
    
    • n 이하의 홀수의 수를 구하는 공식
      • n이 짝수라면 (n/2) +1
      • n이 홀수라면 (n/2)
    • n 이하의 짝수의 수를 구하는 공식
      • n이 짝수든 홀수든 (n/2)

     

    아이스 아메리카노

    첫 번째 시도

    class Solution {
        public int[] solution(int money) {
            int ICE_AMERICANE = 5500;
    
            int[] answer = new int[2];
    
            int buyable = (money / 5500);
            int reaminer = money - (buyable * ICE_AMERICANE);
    
            answer[0] = buyable;
            answer[1] = reaminer;
    
            return answer;
        }
    }
    

    두 번째 시도

    class Solution {
        public int[] solution(int money) {
            int ICE_AMERICANE = 5500;
    
            int buyable = (money / ICE_AMERICANE);
            int reaminer = (money % ICE_AMERICANE);
    
            return new int[]{buyable, reaminer};
        }
    }
    

     

    배열 회전 시키기

    첫 번쨰 시도

    package programmers;
    
    import java.util.Arrays;
    
    public class P120844 {
    
        public int[] solution(int[] numbers, String direction) {
    
            int k = 1;
            int[] answer = new int[numbers.length];
    
            if (direction.equals("right")) {
                for (int i = 0; i < numbers.length; i++) {
                    int rotate_right_index = (i + k) % numbers.length;
                    answer[rotate_right_index] = numbers[i];
                }
            }
            if (direction.equals("left")) {
                for (int i = 0; i < numbers.length; i++) {
                    int rotate_left_index = (i - k + numbers.length) % numbers.length;
                    answer[rotate_left_index] = numbers[i];
                }
            }
            return answer;
        }
    }
    
    

    잘라서 배열로 저장하기

    첫 번째 시도

    class Solution {
         public String[] solution(String my_str, int n) {
    
            String[] answer = new String[3];
            int count = 0;
    
            for (int i = 0; i < my_str.length(); i++) {
                if (i % n == 0) {
                    if (i + n < my_str.length()) {
                        answer[count] = my_str.substring(i, i + n);
                        
                    }
                    if (i + n >= my_str.length()) {
                        answer[count] = my_str.substring(i, my_str.length());
                    }
                    count++;
                }
            }
             
            return answer;
        }
    }
    
    • Runtime Error나는 코드와 실패하는 케이스 섞임
    • 아래와 같이 수정했더니 성공하긴함
    • int array_count = (my_str.length() +n - 1) / n; String[] answer = new String[array_count];

    두 번째 시도 (ChatGpt 활용)

    class Solution {
        public String[] solution(String my_str, int n) {
            // 필요한 배열 크기 계산
            int arraySize = (my_str.length() + n - 1) / n;
            String[] answer = new String[arraySize];
            int count = 0;
    
            for (int i = 0; i < my_str.length(); i += n) {
                int end = Math.min(i + n, my_str.length());
                answer[count++] = my_str.substring(i, end);
            }
            
            return answer;
        }
    }
    
    

     

    728x90
    반응형