no image
[인프런 알고리즘] Chapter 1, 4번 문제(단어 뒤집기)
이 알고리즘 문제는 인프런의 자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비(https://cote.inflearn.com/contest/10/problems) (김태원)의 문제입니다.문제 설명 코드import java.io.IOException;import java.util.Scanner;public class sec01_04 { public static void solution(String[] str) { StringBuilder sb = new StringBuilder(new String("")); for (String s : str) { sb.append(new StringBuilder(s).reverse()).append("\n"); ..
2024.07.05
no image
[인프런 알고리즘] Chapter 1, 3번 문제(문장 속 단어)
이 알고리즘 문제는 인프런의 자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비(https://cote.inflearn.com/contest/10/problems) (김태원)의 문제입니다.문제 설명 코드import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.StringTokenizer;public class sec01_03 { public static String solution(String str) { StringTokenizer st = new StringTokenizer(str); int max = 0; String ..
2024.07.04
no image
[인프런 알고리즘] Chapter 1, 2번 문제(대소문자 변환)
이 알고리즘 문제는 인프런의 자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비(https://cote.inflearn.com/contest/10/problems) (김태원)의 문제입니다.문제 설명 코드import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class sec01_02 { public static String solution(String str) { StringBuilder sb = new StringBuilder(); for (char c : str.toCharArray()) { if(Character.isLowerC..
2024.07.03
no image
[인프런 알고리즘] Chapter 1, 1번 문제(문자 찾기)
이 알고리즘 문제는 인프런의 자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비(https://cote.inflearn.com/contest/10/problems) (김태원)의 문제입니다.문제 설명 코드import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;class Main { public static int solution(String fullText, char character) { String lowerFullText = fullText.toLowerCase(); char lowerChar = Character.toLowerCase(character); ..
2024.07.02

이 알고리즘 문제는 인프런의 자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비(https://cote.inflearn.com/contest/10/problems) (김태원)의 문제입니다.


문제 설명

 

코드

import java.io.IOException;
import java.util.Scanner;

public class sec01_04 {
    public static void solution(String[] str) {
        StringBuilder sb = new StringBuilder(new String(""));
        for (String s : str) {
            sb.append(new StringBuilder(s).reverse()).append("\n");
        }
        System.out.println(sb);
    }

    public static void main(String[] args) throws IOException {
        Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();
        String[] strings = new String[N];
        for (int i = 0; i < N; i++) {
            strings[i] = sc.next();
        }
        solution(strings);
    }
}

 

설명

  • solution 메소드는 문자열 배열을 입력으로 받아, 각 문자열을 역순으로 변환한 후, 모든 결과를 StringBuilder에 저장하여 출력한다.
  • StringBuilder sb = new StringBuilder(new String(""))로 초기화한다.
  • 배열 str의 각 문자열 s에 대해 new StringBuilder(s).reverse()를 통해 역순으로 변환하고, 이를 sb에 추가하고 줄바꿈 문자를 추가한다.
  • System.out.println(sb)를 통해 최종 결과를 출력한다.

이 알고리즘 문제는 인프런의 자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비(https://cote.inflearn.com/contest/10/problems) (김태원)의 문제입니다.


문제 설명

 

코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class sec01_03 {
    public static String solution(String str) {
        StringTokenizer st = new StringTokenizer(str);
        int max = 0;
        String text = "";
        while (st.hasMoreTokens()){
            String temp = st.nextToken();
            int length = temp.length();
            if(length > max) {
                max = length;
                text = temp;
            }
        }
        return text;
    }

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String text = br.readLine();
        System.out.println(solution(text));
    }
}

 

설명

  • StringTokenizer 로 공백을 기준으로 문자열을 자른다.
  • 잘라진 단어 갯수만큼 루프를 돌면서 단어의 길이를 측정하고, 단어의 길이가 가장 길다면 temp 변수에 저장한다.
  • 루프가 종료되면 가장 길이가 긴 단어는 temp 변수에 저장된다.
  • temp 변수의 값을 출력한다.

이 알고리즘 문제는 인프런의 자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비(https://cote.inflearn.com/contest/10/problems) (김태원)의 문제입니다.


문제 설명

 

코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class sec01_02 {
    public static String solution(String str) {
        StringBuilder sb = new StringBuilder();
        for (char c : str.toCharArray()) {
            if(Character.isLowerCase(c)) sb.append(Character.toUpperCase(c));
            else sb.append(Character.toLowerCase(c));
        }
        return new String(sb);
    }

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String text = br.readLine();
        System.out.println(solution(text));
    }
}

 

설명

  • Character 클래스의 isUpperCase() 메서드는 문자가 대문자인지 확인하고, isLowerCase() 메서드는 문자가 소문자인지 확인한다.(리턴 타입 = Boolean)
  • isUpperCase(), isLowerCase() 를 활용하여 대문자는 소문자로, 소문자는 대문자로 변환하여 문자열을 만든다.

이 알고리즘 문제는 인프런의 자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비(https://cote.inflearn.com/contest/10/problems) (김태원)의 문제입니다.


문제 설명

 

코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

class Main {
    public static int solution(String fullText, char character) {
        String lowerFullText = fullText.toLowerCase();
        char lowerChar = Character.toLowerCase(character);
        int count = 0;

        for (int i = 0; i < lowerFullText.length(); i++) {
            if (lowerFullText.charAt(i) == lowerChar) {
                count++;
            }
        }
        
        return count;
    }

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String fullText = br.readLine();
        char character = br.readLine().charAt(0);
        System.out.println(solution(fullText, character));
    }
}

 

설명

  • 문자열과 문자를 입력받는다.
  • 문자열과 문자를 모두 소문자로 변환한다.
  • 문자열을 순회하면서 문자를 찾고, 찾을 때마다 count의 수를 +1 시킨다.