// 예제 입력: [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
}
}