[JAVA] 백준 5단계

2024. 9. 9. 15:48코딩 테스트(Coding Test)/백준

27866 문자와 문자열

나의 답) 104ms

import java.io.*;
class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String s = br.readLine();
        int i = Integer.parseInt(br.readLine());
        
        System.out.print(s.charAt(i - 1));
    }
}

2743 단어 길이 재기

나의 답) 108ms

import java.io.*;
class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String str = br.readLine();
        
        System.out.print(str.length());
    }
}

9086 문자열

나의 답) 108ms

import java.io.*;
class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();
        int T = Integer.parseInt(br.readLine());
        
        for (int i = 0; i < T; i++) {
            String str = br.readLine();
            sb.append(str.charAt(0)).append(str.charAt(str.length() - 1)).append("\n");
        }
        System.out.print(sb);
    }
}

 

다른 사람의 답) 100ms

import java.io.*;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());
        
        for(int i = 0; i < n; i++){
            String s = br.readLine();
            System.out.print(s.charAt(0));
            System.out.println(s.charAt(s.length() - 1));
        }
    }
}

11654 아스키 코드

나의 답) 100ms

import java.io.*;
class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        char c = br.readLine().charAt(0);
        int num = c;
        
        System.out.print(num);
    }
}

 

다른 사람의 답) 100ms

import java.io.IOException;
class Main {
    public static void main(String[] args) throws IOException {
        System.out.print(System.in.read());
    }
}

11720 숫자의 합

나의 답) 104ms

import java.io.*;
import java.util.StringTokenizer;
class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        int N = Integer.parseInt(br.readLine());
        String n = br.readLine();
        int sum = 0;
        
        for (int i = 0; i < N; i++) {
            sum += n.charAt(i) - '0';
        }
        System.out.print(sum);
    }
}

 

다른 사람의 답) 100ms

import java.io.*;

class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());
        String str = br.readLine();
        int sum = 0;
        
        for (int i = 0; i < n; i++) {
            sum += Integer.parseInt(str.substring(i, i + 1));
        }
        System.out.print(sum);
    }
}

10809 알파벳 찾기

나의 답) 100ms

import java.io.*;
import java.util.Arrays;
class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();
        String str = br.readLine();
        
        int[] arr = new int[26];
        Arrays.fill(arr, -1);
        
        for (int i = 0; i < str.length(); i++) {
            char ch = str.charAt(i);
            if (arr[ch - 'a'] == -1) arr[ch - 'a'] = i;
        }
       
        for (int i = 0; i < 26; i++) {
            sb.append(arr[i]).append(" ");
        }
        System.out.print(sb);
    }
}

2675 문자열 반복

나의 코드) 96ms

import java.io.*;
import java.util.StringTokenizer;
class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st;
        StringBuilder sb = new StringBuilder();
        int T = Integer.parseInt(br.readLine());
        
        for (int i = 0; i < T; i++) {
            st = new StringTokenizer(br.readLine());
            int R = Integer.parseInt(st.nextToken());
            String S = st.nextToken();
            
            for (int j = 0; j < S.length(); j++) {
                for (int k = 0; k < R; k++) {
                    sb.append(S.charAt(j));
                }
            }
            sb.append("\n");
        }
        System.out.print(sb);
    }
}

1152 단어의 개수

나의 답) 264ms

import java.io.*;
import java.util.*;
class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        ArrayList<String> list = new ArrayList<>();

        while (st.hasMoreTokens()) {
            list.add(st.nextToken());
        }

        System.out.print(list.size());
    }
}

 

다른 사람의 답) 124ms

import java.io.*;
class Main {
    public static void main(String[] args) throws IOException {
        int count = 0;
        int pre_str = 32;
        int str;
        
        while (true) {
            str = System.in.read();
            
            if (str == 32) {
                if (pre_str != 32) count++;
            } else if (str == 10) {
                if (pre_str != 32) count++;
                break;
            }
            pre_str = str;
        }
        System.out.print(count);
    }
}

2908 상수

나의 답) 100ms

import java.io.*;
class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String[] nums = br.readLine().split(" ");
        
        int num1 = Integer.parseInt(new StringBuilder(nums[0]).reverse().toString());
        int num2 = Integer.parseInt(new StringBuilder(nums[1]).reverse().toString());
        
        System.out.print(Math.max(num1, num2);
    }
}

익명 객체 활용

익명 객체: 객체를 생성하면서 변수 이름을 따로 지정하지 않고 한 번만 사용하는 경우에 적합함

 

다른 사람의 답1) 100ms

import java.io.*;
import java.util.StringTokenizer;
class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine(), " ");
        
        int num1 = Integer.parseInt(new StringBuilder(st.nextToken()).reverse().toString());
		int num2 = Integer.parseInt(new StringBuilder(st.nextToken()).reverse().toString());
        
        System.out.print(num1 > num2 ? num1 : num2);
    }
}

11718 그대로 출력하기

나의 답) 104ms

import java.io.*;
class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String str;
        
        while ((str = br.readLine()) != null) {
            System.out.println(str);
        }
    }
}

 

다른 사람의 답) 104ms

import java.io.*;
class Main {
    public static void main(String[] args) throws IOException {
        System.out.write(System.in.readAllBytes());
    }
}

 

  • System.in.readAllBytes()는 표준 입력에서 모든 데이터를 읽어 byte[]로 저장합니다.
  • System.out.write()는 이 바이트 배열을 표준 출력으로 그대로 출력합니다.
  • 이 방식은 BufferedReader처럼 줄 단위로 처리하지 않고, 전체 입력을 한꺼번에 처리하는 방법입니다.

 

'코딩 테스트(Coding Test) > 백준' 카테고리의 다른 글

[JAVA] 백준 7단계  (0) 2024.09.10
[JAVA] 백준 6단계  (1) 2024.09.09
[JAVA] 백준 4단계  (0) 2024.09.05
[JAVA] 백준 3단계  (0) 2024.09.04
[JAVA] 백준 2단계  (0) 2024.09.03