Java 코테 예상문제

서린·2024년 7월 22일
0
// 예제 입력: [1, 3, 5, 2, 4]
//예제 출력: 5
public class MaxValueFinder {
    public static int findMax(int[] arr) {
        int max = arr[0];
        for (int num : arr) {
            if (num > max) {
                max = num;
            }
        }
        return max;
    }

    public static void main(String[] args) {
        int[] arr = {1, 3, 5, 2, 4};
        System.out.println("Maximum value: " + findMax(arr));
    }
}

// 주어진 문자열이 팰린드롬인지 확인하는 함수를 작성하세요. 팰린드롬은 앞뒤가 똑같은 문자열을 말합니다.
// 예제 입력: "racecar"
//예제 출력: true
public class PalindromeChecker {
    public static boolean isPalindrome(String str) {
        int left = 0;
        int right = str.length() - 1;

        while (left < right) {
            if (str.charAt(left) != str.charAt(right)) {
                return false;
            }
            left++;
            right--;
        }
        return true;
    }

    public static void main(String[] args) {
        String str = "racecar";
        System.out.println("Is palindrome: " + isPalindrome(str));
    }
}

// 설명: 두 개의 정렬된 정수 배열이 주어지면, 이 배열들을 합친 후 정렬된 새로운 배열을 반환하는 함수를 작성하세요.
//
//예제 입력: [1, 3, 5], [2, 4, 6]
//예제 출력: [1, 2, 3, 4, 5, 6]
public class MergeAndSortArrays {
    public static int[] mergeAndSort(int[] arr1, int[] arr2) {
        int[] merged = new int[arr1.length + arr2.length];
        System.arraycopy(arr1, 0, merged, 0, arr1.length);
        System.arraycopy(arr2, 0, merged, arr1.length, arr2.length);
        Arrays.sort(merged);
        return merged;
    }

    public static void main(String[] args) {
        int[] arr1 = {1, 3, 5};
        int[] arr2 = {2, 4, 6};
        int[] result = mergeAndSort(arr1, arr2);
        System.out.println("Merged and sorted array: " + Arrays.toString(result));
    }
}

// 설명: 주어진 문자열에서 중복된 문자를 제거한 새로운 문자열을 반환하는 함수를 작성하세요.
//
//예제 입력: "banana"
//예제 출력: "ban"
public class RemoveDuplicates {
    public static String removeDuplicates(String str) {
        HashSet<Character> seen = new HashSet<>();
        StringBuilder sb = new StringBuilder();

        for (char c : str.toCharArray()) {
            if (!seen.contains(c)) {
                seen.add(c);
                sb.append(c);
            }
        }
        return sb.toString();
    }

    public static void main(String[] args) {
        String str = "banana";
        System.out.println("String after removing duplicates: " + removeDuplicates(str));
    }
}

기본

// 문제 설명: 주어진 문자열을 뒤집는 문제입니다.

//  설명:

// StringBuilder 객체를 사용하여 문자열을 뒤집습니다.
// reverse() 메서드를 사용하여 문자열을 뒤집고 toString() 메서드로 문자열로 변환합니다.


public class ReverseString {
    public String reverse(String s) {
        return new StringBuilder(s).reverse().toString();
    }

    public static void main(String[] args) {
        ReverseString rs = new ReverseString();
        System.out.println(rs.reverse("hello")); // "olleh"
    }
}
// 2. 팰린드롬 확인 (Palindrome Check)
// 문제 설명: 주어진 문자열이 팰린드롬(앞뒤가 같은 문자열)인지 확인하는 문제입니다.

// 코드 설명:

// 문자열의 양 끝에서 하나씩 비교하면서 팰린드롬 여부를 확인합니다.
// 문자가 다르면 false를 반환하고, 끝까지 비교를 마치면 true를 반환합니다.

public class PalindromeCheck {
    public boolean isPalindrome(String s) {
        int left = 0, right = s.length() - 1;
        while (left < right) {
            if (s.charAt(left) != s.charAt(right)) {
                return false;
            }
            left++;
            right--;
        }
        return true;
    }

    public static void main(String[] args) {
        PalindromeCheck pc = new PalindromeCheck();
        System.out.println(pc.isPalindrome("racecar")); // true
        System.out.println(pc.isPalindrome("hello")); // false
    }
}
// 3. 배열에서 최대값 찾기 (Find Maximum in Array)
// 문제 설명: 주어진 배열에서 최대값을 찾는 문제입니다.

// 코드 설명:

// 배열의 첫 번째 값을 초기 최대값으로 설정합니다.
// 배열을 순회하며 각 요소가 현재 최대값보다 크면 최대값을 갱신합니다.

public class FindMaximum {
    public int findMax(int[] nums) {
        int max = nums[0];
        for (int num : nums) {
            if (num > max) {
                max = num;
            }
        }
        return max;
    }

    public static void main(String[] args) {
        FindMaximum fm = new FindMaximum();
        int[] nums = {1, 3, 7, 2, 9};
        System.out.println(fm.findMax(nums)); // 9
    }
}
// 4. 배열에서 중복된 숫자 찾기 (Find Duplicates in Array)
// 문제 설명: 주어진 배열에서 중복된 숫자가 있는지 확인하는 문제입니다.

// 코드 설명:

// HashSet을 사용하여 중복을 체크합니다.
// 배열을 순회하며 각 요소를 HashSet에 추가합니다.
// 이미 HashSet에 존재하는 요소가 발견되면 중복이므로 true를 반환합니다.

import java.util.HashSet;
import java.util.Set;

public class FindDuplicates {
    public boolean hasDuplicate(int[] nums) {
        Set<Integer> set = new HashSet<>();
        for (int num : nums) {
            if (set.contains(num)) {
                return true;
            }
            set.add(num);
        }
        return false;
    }

    public static void main(String[] args) {
        FindDuplicates fd = new FindDuplicates();
        int[] nums1 = {1, 2, 3, 4, 5};
        int[] nums2 = {1, 2, 3, 4, 5, 3};
        System.out.println(fd.hasDuplicate(nums1)); // false
        System.out.println(fd.hasDuplicate(nums2)); // true
    }
}
// 5. 배열 합계 계산 (Sum of Array)
// 문제 설명: 주어진 배열의 모든 요소의 합을 구하는 문제입니다.

// 코드 설명:

// 배열을 순회하며 각 요소를 합계 변수에 더합니다.
// 최종 합계를 반환합니다.

public class SumOfArray {
    public int sum(int[] nums) {
        int sum = 0;
        for (int num : nums) {
            sum += num;
        }
        return sum;
    }

    public static void main(String[] args) {
        SumOfArray sa = new SumOfArray();
        int[] nums = {1, 2, 3, 4, 5};
        System.out.println(sa.sum(nums)); // 15
    }
}
// 6. 피보나치 수열 (Fibonacci Sequence)
// 문제 설명: 피보나치 수열의 n번째 수를 구하는 문제입니다.

// 코드 설명:

// 피보나치 수열의 정의에 따라 재귀적으로 값을 계산합니다.
// 기본 케이스로 n이 0 또는 1일 때는 n을 반환합니다.

public class Fibonacci {
    public int fib(int n) {
        if (n <= 1) {
            return n;
        }
        return fib(n - 1) + fib(n - 2);
    }

    public static void main(String[] args) {
        Fibonacci f = new Fibonacci();
        System.out.println(f.fib(10)); // 55
    }
}
profile
개발 일기 ( •̀ ω •́ )✧

0개의 댓글

관련 채용 정보