Search Results for 'java'

15 POSTS

  1. 2008/07/09 [ACM] 2007 Problem A - Molar mass

[ACM] 2007 Problem A - Molar mass

Posted 2008/07/09 14:47


UVA 홈페이지가 이상한 관계로, ACM 문제들을 풀기로 했다. 쉬운문제에서 어려운문제 순으로.. ㅎ

2007년도 A번문제는 원소들의 가중치의 합계를 구하는 문제로 입력받은 String에서 원소와 숫자를 적절히 잘라주는것이 중요하다.

StringTokenizer를 사용하면 이것을 쉽게 자를 수 있다.

먼저 입력받은 String에서 각 원소가 몇개씩 존재하는지 통계를 계산한 후에 결과 가중치를 계산한다.


import java.util.Scanner;
import java.util.StringTokenizer;

public class A {
        Scanner in = new Scanner(System.in);
        int[] weight;
       
        public A() {
                int n = in.nextInt();
               
                for(int i=0 ; i<n ; i++) {
                        start();
                        print();
                }
        }
       
        public void start() {
                weight = new int[26];
                StringTokenizer tokenizer = new StringTokenizer(in.next(), "CHON", true);
               
                String str1;
                String str2 = "";
       
                while(tokenizer.hasMoreTokens()) {
                        str1 = tokenizer.nextToken();
                        if(!isAtomic(str1)) {
                                weight[str2.charAt(0)-'A'] += Integer.parseInt(str1);
                                str2 = "";
                        }
                        else {
                                if(!str2.equals(""))
                                        weight[str2.charAt(0)-'A'] += 1;
                                str2 = str1;
                        }
                }
               
                if(!str2.equals(""))
                        weight[str2.charAt(0)-'A'] += 1;
        }
       
       
        public void print() {
                System.out.println(
                                weight['C'-'A']*12.01 +
                                weight['H'-'A']*1.008 +
                                weight['O'-'A']*16 +
                                weight['N'-'A']*14.01
                                );
        }
       
       
        public boolean isAtomic(String str) {
                return str.charAt(0) <= 'Z' && str.charAt(0) >= 'A';
        }
       
       
        public static void main(String[] args) {
                new A();
        }
}

'C.S.E > Algorithm' 카테고리의 다른 글

PKU Judge Online 소개  (0) 2008/07/23
[ACM] Problem B. Editor  (0) 2008/07/12
[ACM] 2007 Problem A - Molar mass  (0) 2008/07/09
[IBM Developer Works]초보개발자 코드 트레이닝 Part 2.  (0) 2008/05/16
[UVA] 10198 Counting  (0) 2008/05/06
[UVA] 10099 The Tourist Guide  (0) 2008/05/04
« PREV : 1 : 2 : 3 : 4 : 5 : ... 15 : NEXT »