Problem:
問題 A KUPC

問題文

とある学生が，Kyoto University Programming Contest (KUPC) を開こうと考えた．そこで彼は，看板を作って皆に宣伝することにした．今，手元にはアルファベット 1 文字の書かれた板がいくつもある．これらの板から 'K'，'U'，'P'，'C' という文字の書かれた 4 枚の板を選ぶことで看板を 1 つ作成できる．この作業を繰り返すことで，沢山の看板を作成できるはずである．さて，与えられた板を使って，最終的に何枚の KUPC と書かれた看板が得られるだろうか？

入力形式

文字列が 1 行で与えられる．文字列の各文字は，各板に書かれている文字を表す．

出力形式

KUPC という看板が何枚作成できるかを計算し，その数を 1 行に出力せよ．

制約

文字列はアルファベットのみからなる．

文字列の長さは 300 以内である．

入出力例

入力例 1

KUPCkupcKUPC

出力例1

2

入力例 2

UNPACK

出力例 2

1

入力例 3

KkKUUuPPPCCC

出力例 3

2

Solution in JAVA (judge verdict: Accepted)

public class Main{
  public void run(java.io.InputStream in, java.io.PrintStream out){
    java.util.Scanner sc = new java.util.Scanner(in);
    int i, tmp;
    int[] count = new int[4];
    String s = sc.nextLine();
    for(i = 0;i < s.length();i++){
      if(s.charAt(i) == 'K')count[0]++;
      else if(s.charAt(i) == 'U')count[1]++;
      else if(s.charAt(i) == 'P')count[2]++;
      else if(s.charAt(i) == 'C')count[3]++;
    }
    for(i = 0;i < 3;i++)if(count[i] < count[i + 1]){
      tmp = count[i]; count[i] = count[i + 1]; count[i + 1] = tmp;
    }
    out.println(count[3]);

    sc.close();
  }
  public static void main(String[] args){
    (new Main()).run(System.in, System.out);
  }
}