[Java] 백준 CLASS 1

Lee GaEun·2025년 1월 7일

[Java] 알고리즘

목록 보기
41/93

2562 최댓값

문제 링크

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());

        int[] answer = new int[2];
        for(int i=0; i<9; i++) {
            int a = Integer.parseInt(br.readLine());
            if(answer[0] < a) {
                answer[1] = i+1;
                answer[0] = a;
            }
        }

        for(int i=0; i<2; i++) {
            System.out.println(answer[i]);
        }
    }
}

  • 성공!

10250 ACM 호텔

문제 링크

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;

        int T = Integer.parseInt(br.readLine());
        for(int i=0; i<T; i++) {
            st = new StringTokenizer(br.readLine());
            int H = Integer.parseInt(st.nextToken());
            int W = Integer.parseInt(st.nextToken());
            int N = Integer.parseInt(st.nextToken());

            int a = N/H;
            String b = String.valueOf(N%H);

            if(b.equals("0")) {
                System.out.println(H + ( a>=10 ? ""+a : "0"+a ));
            } else System.out.println(b + ( a+1>=10 ? ""+(a+1) : "0"+(a+1) ));
        }
    }
}

  • 예외가 되는 부분이 은근 많았음..
  • a+1>=10 ? ""+(a+1) : "0"+(a+1)
  • 뭐 쨌든 성공!

10818 최소, 최대

문제 링크

import java.io.*;
import java.util.*;

class Main {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        int N = Integer.parseInt(br.readLine());
        StringTokenizer st = new StringTokenizer(br.readLine());

        int max = Integer.MIN_VALUE;
        int min = Integer.MAX_VALUE;
        for(int i=0; i<N; i++) {
            int a = Integer.parseInt(st.nextToken());
            max = Math.max(max, a);
            min = Math.min(min, a);
        }
        bw.write(min+" "+max);
        bw.flush();
        bw.close();
    }
}

  • 성공!

1152 단어의 개수

문제 링크

import java.io.*;
import java.util.*;

class Main {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        String word = br.readLine();
        int answer=0;
        String[] wordCount = word.split(" ");
        for(int i=0; i< wordCount.length; i++) {
            answer += wordCount[i]=="" ? 0 : 1;
        }

        bw.write(answer+"");
        bw.flush();
        bw.close();
    }
}

  • 성공!
  • 했는데 이게 쉬운 방법이 있더라고..
import java.io.*;
import java.util.*;

class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer st = new StringTokenizer(br.readLine());

        bw.write(st.countTokens()+"");
        bw.flush();
        bw.close();
    }
}

  • 훨씬 낫죠..?

2577 숫자의 개수

문제 링크

import java.io.*;
import java.util.*;

class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int A = Integer.parseInt(br.readLine());
        int B = Integer.parseInt(br.readLine());
        int C = Integer.parseInt(br.readLine());

        String alpa = String.valueOf(A*B*C);
        int[] answer = new int[10];
        for(int i=0; i<alpa.length(); i++) {
            int a = alpa.charAt(i)-'0';
            answer[a]++;
        }

        for(int i=0; i<10; i++) {
            System.out.println(answer[i]);
        }
    }
}

  • 성공!

2675 문자열 반복

문제 링크

import java.io.*;
import java.util.*;

class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int T = Integer.parseInt(br.readLine());

        for(int i=0; i<T; i++) {
            String answer = "";
            StringTokenizer st = new StringTokenizer(br.readLine());
            int N = Integer.parseInt(st.nextToken());
            String A = st.nextToken();
            for(int a=0; a<A.length(); a++) {
                for (int b=0; b<N; b++) {
                    answer += A.charAt(a);
                }
            }
            System.out.println(answer);
        }


    }
}

  • 성공!

2920 음계

문제 링크

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());
        int[] A = new int[8];
        for(int i=0; i<8; i++) {
            A[i] = Integer.parseInt(st.nextToken());
        }

        System.out.println(print(A, A[0]));
    }
    static String print(int[] A, int answer) {
        if(answer==8) {
            for(int i=1; i<8; i++) {
                if(--answer != A[i]) return "mixed";
            }
            return "descending";
        }
        else if(answer==1) {
            for(int i=1; i<8; i++) {
                if(++answer != A[i]) return "mixed";
            }
            return "ascending";
        } else return "mixed";
    }
}

  • 성공!

3052 나머지

문제 링크

import java.io.*;
import java.util.*;

class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        Set<Integer> remind = new HashSet<>();
        for(int i=0; i<10; i++) {
            int N = Integer.parseInt(br.readLine());
            remind.add(N%42);
        }
        System.out.println(remind.size());
    }
}

  • 처음에 Collections.sort();, Arrays.sort();로 정렬을 하면 중복이 제거될 줄 알았는데 둘 다 중복이 있는 상태로 정렬 해주는 거였음
  • 그래서 자료구조 Set<Integer>을 사용함
  • 어쨌든 성공!

8958 OX퀴즈

문제 링크

import java.io.*;
import java.util.*;

class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int T = Integer.parseInt(br.readLine());
        for(int j=0; j<T; j++) {
            String N = br.readLine();
            char[] code = new char[N.length()];
            for (int i = 0; i < N.length(); i++) {
                code[i] = N.charAt(i);
            }

            int answer = 0;
            int count = 0;
            for(int i=0; i<N.length(); i++) {
                if(code[i]=='O') {
                    count++;
                    answer+=count;
                } else count = 0;
            }
            System.out.println(answer);
        }
    }
}

  • 성공!

10809 알파벳 찾기

문제 링크

import java.io.*;
import java.util.*;

class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String N = br.readLine();
        int[] index = new int[26];
        Arrays.fill(index, -1);
        for (int i = 0; i < N.length(); i++) {
            if(index[N.charAt(i)-97]==-1) index[N.charAt(i)-97]=i;
        }
        for(int i=0; i<26; i++) {
            System.out.print(index[i]+" ");
        }
    }
}

  • System.out.print(index[i]+" ");이렇게 뒤에 공백을 넣었는데 그래도 정답처리 되네,.,
  • 성공!
profile
I will give it my all (๑•̀o•́๑)ง

0개의 댓글