본문 바로가기
자바

자바 코딩테스트 연습

by 플라퉁 2023. 10. 5.
728x90
반응형

 

 

 

안녕하세요 오늘은 자바 코딩 테스트 문제를 풀어보며 연습해보겠습니다.

 

 

문제 1: 배열 회전

 

다음과 같은 문제를 해결해 보세요.

정수형 배열이 주어졌을 , 배열을 오른쪽으로 N 회전시키는 메서드를 작성하십시오. 예를 들어, [1,2,3,4,5] 배열이 있고 N=2라면 출력은 [4,5,1,2,3] 되어야 합니다.

 

 

문제 2: 팔린드롬 체크

 

주어진 문자열이 팔린드롬인지 확인하는 함수를 작성하세요. 팔린드롬은 앞으로 읽으나 뒤로 읽으나 동일한 문자열을 의미합니다. 대소문자는 구분하지 않으며 공백도 무시합니다.

 

 

문제 3: 피보나치 수열

 

재귀함수를 사용하여 n번째 피보나치 수열의 값을 반환하는 함수를 작성하세요.

피보나치 수열은 다음과 같습니다: 0 (0번째), 1 (1번째), 1 = 0 + 1 (2번째), 2 = 1 + 1 (3번째), ...

 

 

문제 4: 이진 트리 깊이

 

주어진 이진 트리의 최대 깊이를 찾는 함수를 작성하세요. 여기서 이진 트리의 최대 깊이는 루트 노드에서 가장 멀리 떨어져 있는 노드까지의 가장 경로입니다. 경로에는 반드시 새로운 자식 노드가 있어야 합니다.

 

class TreeNode {
    int val;
    TreeNode left;
    TreeNode right;
    
    TreeNode() {}
    
    TreeNode(int val) { this.val = val; }
    
    TreeNode(int val, TreeNode left, TreeNode right) {
        this.val = val;
        this.left = left;
        this.right = right;
    }
}

public int maxDepth(TreeNode root) {
   // 여기에 코드를 작성하세요.
}

 

 

문제 5: 숫자 문자열과 영단어

 

숫자의 일부를 영단어로 바꿔서 주어지는 문자열 s 있습니다. s 의미하는 원래 숫자를 반환하도록 solution 함수를 완성해주세요.

예시:

  • "one4seveneight" -> 1478
  • "23four5six7" -> 234567
  • "2three45sixseven" -> 234567

 

 

문제 6: 짝수와 홀수

 

정수 num 주어졌을 , num 짝수일 경우 "Even" 반환하고 홀수인 경우 "Odd" 반환하는 함수 solution 완성해주세요.

 

 

 

 

 

 

답안 :

1.

public int[] rotateArray(int[] array, int n) {
    int length = array.length;
    int[] rotatedArray = new int[length];
    
    for (int i = 0; i < length; i++) {
        rotatedArray[(i + n) % length] = array[i];
    }
    
    return rotatedArray;
}

 

 

2.

public boolean isPalindrome(String str) {
    String processedStr = str.toLowerCase().replaceAll("\\s", "");
    
    int leftIndex = 0;
    int rightIndex = processedStr.length() - 1;
    
    while (leftIndex < rightIndex) {
        if (processedStr.charAt(leftIndex) != processedStr.charAt(rightIndex)) {
            return false;
        }
        
        leftIndex++;
        rightIndex--;
    }
    
    return true;
}

 

 

3.

public int fibonacci(int n) {
   if(n <= 1){
       return n;
   } else{
       return fibonacci(n-1) + fibonacci(n-2);
   }
}

 

 

4.

class TreeNode {
    int val;
    TreeNode left;
    TreeNode right;
    
    TreeNode() {}
    
    TreeNode(int val) { this.val = val; }
    
    TreeNode(int val, TreeNode left, TreeNode right) {
        this.val = val;
        this.left = left;
        this.right = right;
    }
}

public int maxDepth(TreeNode root) {
    if (root == null) {
        return 0;
    } else {
        int leftDepth = maxDepth(root.left);
        int rightDepth = maxDepth(root.right);
        
        return Math.max(leftDepth, rightDepth) + 1;
    }
}

 

 

5.

public int solution(String s) {
    String[] words = {"zero", "one", "two", "three", "four", "five",
                      "six", "seven", "eight", "nine"};
                      
    for (int i = 0; i < words.length; i++) {
        s = s.replaceAll(words[i], Integer.toString(i));
    }
    
    return Integer.parseInt(s);
}

 

 

6.

public String solution(int num) {
   if (num % 2 == 0) {
       return "Even";
   } else {
       return "Odd";
   }
}

 

 

 

 

728x90
반응형

댓글