본문 바로가기
백준/출제한 문제들

[백준] 29791번 : 에르다 노바와 오리진 스킬

by lms0806 2023. 9. 16.
728x90
반응형

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

 

29791번: 에르다 노바와 오리진 스킬

첫 번째 줄에는 임스의 에르다 노바 사용 횟수를 나타내는 정수 $N$와 오리진 스킬 사용 횟수를 나타내는 정수 $M$이 공백으로 구분되어 주어진다. $(1 \le N \le 1\,000\,000;$ $1 \le M \le 1\,000\,000)$ 두 번

www.acmicpc.net

해당 문제는 쇼케이스를 통해 공개된 6차 스킬을 활용하여 출제한 문제입니다.

 

해당 문제에 대한 해설은 요기에 나와 있습니다.

 

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

public 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 n = Integer.parseInt(st.nextToken()), m = Integer.parseInt(st.nextToken());
		
		int[] ans = new int[n], oss = new int[m];
		
		st = new StringTokenizer(br.readLine());
		for(int i = 0; i < n; i++) {
			ans[i] = Integer.parseInt(st.nextToken());
		}
        st = new StringTokenizer(br.readLine());
		for(int i = 0; i < m; i++) {
			oss[i] = Integer.parseInt(st.nextToken());
		}
        
        Arrays.sort(ans);
		Arrays.sort(oss);
		
        int an = 0, os = 0;
		int ancount = 0, oscount = 0;
        for(int i = 0; i < n; i++){
            if(an == 0) {
				an = ans[i];
				ancount++;
			}
			else {
				if(ans[i] - an >= 100) {
					an = ans[i];
					ancount++;
				}
			}
        }
        for(int i = 0; i < m; i++){
            if(os == 0) {
				os = oss[i];
				oscount++;
			}
			else {
				if(oss[i] - os >= 360) {
					os = oss[i];
					oscount++;
				}
			}
        }
		
		System.out.print(ancount + " " + oscount);
	}
}
728x90
반응형

댓글