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