Codeforces #52 (div2) A "Bar"

問題:http://codeforces.com/contest/56/problem/A

参加形式:本番

あるバーでの客の年齢または注文されたドリンクのリストが与えられる.ある国でアルコールを提供可能な年齢は18以上であるため,アルコールを含むドリンクを提供する客の年齢をチェックする必要がある.チェックすべき人数を求める.ただし,バーで提供しているアルコールはABSINTH, BEER, BRANDY, CHAMPAGNE, GIN, RUM, SAKE, TEQUILA, VODKA, WHISKEY, WINEのいずれかである.

単に入力が数値かどうかを判定して,数値ならば18以上かどうか,文字列ならばアルコールのリストに含まれているかどうかを判定.

コード

import java.util.*;

public class A_Bar {
	public static void main(String[] args) {
		Scanner s = new Scanner(System.in);
		List<String> a = Arrays.asList("ABSINTH", "BEER", "BRANDY", "CHAMPAGNE", "GIN", "RUM",
				"SAKE", "TEQUILA", "VODKA", "WHISKEY", "WINE" );
		int count = 0;
		for(int n = s.nextInt();n-->0;){
			String next = s.next();
			if((next.matches("\\d+") && new Integer(next) < 18) || a.contains(next)){
				++count;
			}
		}
		System.out.println(count);
		
	}
}