본문 바로가기

Java-Study

Java Study : 4주차 - 백준 문제풀이

https://www.acmicpc.net/problem/10818

 

10818번: 최소, 최대

첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다.

www.acmicpc.net

package baekjoon;

import java.util.Scanner;
import java.util.Arrays;

public class B10818 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int a = in.nextInt();
        int[] Array = new int[a];

        for(int i=0; i<a; i++) {
            Array[i] = in.nextInt();
        }
        Arrays.sort(Array);    //오름차순으로 정렬
        System.out.println(Array[0] + " " + Array[a-1]);
    }
}

 

https://www.acmicpc.net/problem/4344

 

4344번: 평균은 넘겠지

대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다.

www.acmicpc.net

package baekjoon;

import java.util.Scanner;

public class B4344 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int c = in.nextInt();
        int[] number = new int[c];

        for(int i=0; i<c; i++) {
            int x = in.nextInt();
            int[] grade = new int[x];
            double sum = 0;
            double avg;
            double count = 0;

            for(int j=0; j<x; j++) {
                grade[j] = in.nextInt();
                sum += grade[j];
            }
            avg = (sum/(double)x);

            for(int k=0; k<x; k++) {
                if(grade[k] > avg) {
                    count++;
                }
            }
            System.out.printf("%.3f%%\n",(count/x)*100);
            //%0.3f" 소수점 3가지까지 반올림 / %출력하려면 %하나 더 붙여야됨
        }
    }
}

 

https://www.acmicpc.net/problem/8958

 

8958번: OX퀴즈

"OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수

www.acmicpc.net

package baekjoon;

import java.util.Scanner;

public class B8958 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int c = in.nextInt();
        in.nextLine();

        for(int i = 0; i < c; i++) {
            int sum = 0;
            int k = 0;
            String ox = in.nextLine();
            for(int j=0; j<ox.length(); j++) {
                if(ox.charAt(j) == 'O') {
                    k += 1;
                }
                else {
                    k = 0;
                }
                sum += k;
            }
            System.out.println(sum);
        }
    }
}

 

https://www.acmicpc.net/problem/3052

 

3052번: 나머지

각 수를 42로 나눈 나머지는 39, 40, 41, 0, 1, 2, 40, 41, 0, 1이다. 서로 다른 값은 6개가 있다.

www.acmicpc.net

package baekjoon;

import java.util.*;

public class B3052 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int count = 10;
        int k;
        List<Integer> numList = new ArrayList<>();

        for(int i=0; i<10; i++) {
            int num = in.nextInt();
            k = num%42;
            numList.add(k);
        }
        Set<Integer> numSet = new HashSet<>(numList);
        //set - 중복을 허용하지 않는 자료구조
        System.out.println(numSet.size());
    }
}

 

https://www.acmicpc.net/problem/15596

 

15596번: 정수 N개의 합

C++17, Java 8, Python 3, C11, PyPy3, C99, C++98, C++11, C++14, Go, C99 (Clang), C++98 (Clang), C++11 (Clang), C++14 (Clang), C11 (Clang), C++17 (Clang)

www.acmicpc.net

package baekjoon;

public class B15596 {
    long sum(int[] a) {
        long ans = 0;
        for(int i=0; i<a.length; i++) {
            ans += a[i];
        }
        return ans;
    }
}