본문 바로가기
백준/20001 - 25000

[백준] 21866번 : 추첨을 통해 커피를 받자(JAVA)

by lms0806 2021. 7. 20.
728x90
반응형

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

 

21866번: 추첨을 통해 커피를 받자

첫 번째 줄에 9개의 정수가 주어진다. 각 정수는 $0$ 이상 $1\,000$ 이하의 정수다. 각 정수는 해당 학생이 각 문제에서 얻은 점수를 의미한다.

www.acmicpc.net

풀이

점수가 100, 100, 200, 200, 300, 300, 400, 400, 500점이 넘으면 hacker, 합계가 100이 넘으면 none 둘다 아니면 draw를 출력하는 문제이다.

점수가 커지는 규칙이 2번 체크 후 커지면 된다.

처음에 100으로 체크해 주다가 횟수가 2번 증가되면 체크넘버에 + 100 을 해주는 방식으로 체크하면서 합계를 계속해서 구해준다.

체크하다가 체크넘버보다 큰 숫자가 들어오면 hacker를 넘겨주고 아니면 for문이 끝날때 합계를 체크해줘서 none이나 draw를 넘겨주면 된다.

 

소스코드

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

public class Main {
	public static void main(String[] args) throws IOException{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 
		System.out.print(solve(br.readLine()));
	}
	
	public static String solve(String str) {
		StringTokenizer st = new StringTokenizer(str);
		
		int num = 100;
		int sum = 0;
		for(int i = 0; i < 9; i++) {
			int n = Integer.parseInt(st.nextToken());
			if(i%2 == 0 && i != 0) {
				num += 100;
			}
			sum += n;
			if(n > num) {
				return "hacker";
			}
		}
		return sum < 100 ? "none" : "draw";
	}
}
728x90
반응형

댓글