JAVA - 알고리즘 문제풀이

수현·2023년 7월 27일
0

Lesson

목록 보기
6/9

📍 1. String (문자열)

📕 (1) 문자 찾기

Inflearn 문자 찾기

문제

코드

import java.util.*;

public class String1_1 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);

        String str = in.nextLine();
        char c = in.next().charAt(0);
        int count = 0;

        for (int i = 0; i < str.length(); i++) {
            if (Character.isUpperCase(c)) {
                str = str.toUpperCase();
            } else {
                str = str.toLowerCase();
            }
            if (str.charAt(i) == c)
                count++;
        }
        System.out.println(count);
        in.close();
    }
}

📕 (2) 대소문자 변환

Inflearn 대소문자 변환

문제

코드

import java.util.*;

public class String1_2 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);

        String str = in.nextLine();

        for (int i = 0; i < str.length(); i++) {
            char c = str.charAt(i);
            if (Character.isUpperCase(c)) {
                System.out.print(Character.toLowerCase(c));
            } else {
                System.out.print(Character.toUpperCase(c));
            }
        }
        in.close();
    }
}

📕 (3) 문장 속 단어

Inflearn 문장 속 단어

문제

코드

![](https://velog.velcdn.com/images/24tngus/post/614a145a-7e77-43c8-b885-a7f60df5fa09/image.png)
import java.util.*;

public class String1_3 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);

        String str = in.nextLine();
        String[] arr = str.split(" ");
        int max = 0;
        String answer = "";

        for (int i = arr.length - 1; i >= 0; i--) {
            int count = arr[i].length();
            if (count > max) {
                max = count;
                answer = arr[i];
            }
        }
        System.out.println(answer);
        in.close();
    }
}

📕 (4) 단어 뒤집기

Inflearn 단어 뒤집기

문제

코드

import java.util.*;

public class String1_4 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);

        int N = in.nextInt();
        String[] arr = new String[N];

        for (int i = 0; i < N; i++) {
            arr[i] = in.next();
            for (int j = arr[i].length() - 1; j >= 0; j--) {
                System.out.print(arr[i].charAt(j));
            }
            System.out.println();
        }
        in.close();
    }
}

📕 (5) 특정 문자 뒤집기

Inflearn 특정 문자 뒤집기

문제

코드

import java.util.*;

public class String1_5 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);

        String[] arr = in.next().split("");
        String[] result = new String[arr.length];

        int j = 0;
        for(int i = arr.length - 1; i >= 0; i--) {
            int c = (int)arr[i].charAt(0);
            if ((c >= 65 && c <= 90) || (c >= 97 && c <= 122)) {
                result[j++] = arr[i];
            }
        }
        j = 0;
        for (int i = 0; i < arr.length; i++) {
            int c = (int)arr[i].charAt(0);
            if ((c >= 65 && c <= 90) || (c >= 97 && c <= 122)) {
                System.out.print(result[j++]);
            } else {
                System.out.print(arr[i]);
            }
        }
        in.close();
    }
}

📕 (6) 중복문자제거

Inflearn 중복문자제거

문제

코드

import java.util.*;

public class String1_6 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);

        String[] arr = in.next().split("");
        String[] answer = new String[arr.length];

        int count = 0;
        for (int i = 0; i < arr.length; i++) {
            if (isChar(answer, arr[i].charAt(0), count) == 1) {
                continue;
            } else {
                answer[count++] = arr[i];
                System.out.print(arr[i]);
            }
        }
        in.close();
    }

    public static int isChar(String[] answer, char c, int count) {
        for (int i = 0; i < count; i++) {
            if (answer[i].charAt(0) == c)
                return (1);
        }
        return (0);
    }
}

📕 (7) 회문 문자열

Inflearn 회문 문자열

문제

코드

import java.util.*;

public class String1_7 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);

        String str = in.nextLine().toUpperCase();
        String[] arr = str.split("");
        int len = arr.length - 1;

        for (int i = 0; i < len / 2; i++) {
            char c1 = arr[i].charAt(0);
            char c2 = arr[len - i].charAt(0);
            if (isSameChar(c1, c2) != 1) {
                System.out.println("NO");
                return ; 
            }
        }
        System.out.println("YES");
        in.close();
    }

    public static int isSameChar(char c1, char c2) {
        if (c1 == c2)
            return (1);
        else
            return (0);
    }
}

📕 (8) 유효한 팰린드롬

Inflearn 유효한 팰린드롬

문제

코드

import java.util.*;

public class String1_8 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);

        String str = in.nextLine().toUpperCase();
        String[] arr = str.split("");
        String[] result = new String[arr.length];

        int count = 0;
        for (int i = 0; i < arr.length; i++) {
            int c = (int) str.charAt(i);
            if ((c >= 65 && c <= 90) || (c >= 97 && c <= 122)) {
                result[count++] = arr[i];
            }
        }
        for (int i = 0; i < count / 2; i++) {
            int len = count - 1;
            char c1 = result[i].charAt(0);
            char c2 = result[len - i].charAt(0);
            if (isSameChar(c1, c2) != 1) {
                System.out.println("NO");
                return ;
            }
        }
        System.out.println("YES");
        in.close();
    }

    public static int isSameChar(char c1, char c2) {
        if (c1 == c2)
            return (1);
        else
            return (0);
    }
}

📕 ()

Inflearn

문제

코드

📕 ()

Inflearn

문제

코드

📕 ()

Inflearn

문제

코드

📕 ()

Inflearn

문제

코드

📍 2. Array (배열)

📕 ()

Inflearn

문제

코드

📍 3. Two pointers, Sliding window

📕 ()

Inflearn

문제

코드

📍 4. HashMap, TreeSet

📕 ()

Inflearn

문제

코드

📍 5. Stack, Queue

📕 ()

Inflearn

문제

코드

📍 6. Sorting and Searching

📕 ()

Inflearn

문제

코드

📍 7. Recursive, Tree, Graph

📕 ()

Inflearn

문제

코드

📍 8. DFS, BFS 활용

📕 ()

Inflearn

문제

코드

📍 9. Greedy Algorithm

📕 ()

Inflearn

문제

코드

📍 10. Dynamic Programming

📕 ()

Inflearn

문제

코드

📖 출처

profile
Notion으로 이동 (https://24tngus.notion.site/3a6883f0f47041fe8045ef330a147da3?v=973a0b5ec78a4462bac8010e3b4cd5c0&pvs=4)

1개의 댓글

comment-user-thumbnail
2023년 7월 27일

유익한 글이었습니다.

답글 달기