Problem:
じゃんけん

仲良し 5 人組でじゃんけんをすることになりました。じゃんけんとは、グー、チョキ、パーという 3つの手があり、グーとチョキの勝負ならグーが「勝ち」・チョキが「負け」、チョキとパーなら、チョキが「勝ち」・パーが「負け」、パーとグーならパーが「勝ち」・グーが「負け」というルールです。全員が同じ手、またはグー、チョキ、パー全てが出た場合は「あいこ」となります。

5 人のじゃんけんの手を入力とし、それぞれの人の勝敗を出力するプログラムを作成してください。じゃんけんの手は、グーは 1、チョキは 2、パーは 3 の数字で表します。勝敗は「勝ち」を 1、「負け」を 2、「あいこ」を 3 の数字で表し、入力順に従って出力します。

Input

複数のデータセットの並びが入力として与えられます。入力の終わりはゼロひとつの行で示されます。
各データセットは以下の形式で与えられます。

h1
h2
h3
h4
h5

i 行目に i 人目の手 hi (1, 2 または 3) が与えられます。

データセットの数は 200 を超えません。

Output

入力データセットごとに、5 人の勝敗を出力します。i 行目に i 人目の勝敗(1, 2 または 3) を出力してください。

Sample Input

1
2
3
2
1
1
2
2
2
1
0

Output for the Sample Input

3
3
3
3
3
1
2
2
2
1

Solution in JAVA (judge verdict: Accepted)

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;

//5???????????????????????????????????????
public class Main {
	static Scanner sc = new Scanner(System.in);
	private static final int PEOPLE = 5; //?????????????????????????????°

	public static void main(String[] args) {
		while(true) {
			List<Integer> people = new ArrayList<Integer>();
			int[] ans = new int[PEOPLE];
			people.add(sc.nextInt());
			if(people.get(0) == 0) { //1???????????\??????0?????¨???
				break;
			}
			//2?????????????????\??????????´??????????????????°?????????
			for(int $ = 1; $ < PEOPLE; $++) { //PEOPLE - 1?????°?????????
				people.add(sc.nextInt());
			}

			//?????????????????????
			if(people.contains(1) && people.contains(2) && people.contains(3)) { //?????£???????????£?????¨???
				Arrays.fill(ans, 3);
			} else if(people.contains(1) && people.contains(2)) { //??°?????¨?????§??????????????¨???
				ans = jugh(people, 1, 2);
			} else if(people.contains(1) && people.contains(3)) { //??°?????¨?????????????????¨???
				ans = jugh(people, 3, 1);
			} else if(people.contains(2) && people.contains(3)){ //?????§?????¨?????????????????¨???
				ans = jugh(people, 2, 3);
			} else { //????????????????????¨?????????????????¨???
				Arrays.fill(ans, 3);
			}

			for(int $ = 0; $ < PEOPLE; $++) {
				System.out.println(ans[$]);
			}
		}

	}

	public static int[] jugh(List<Integer> list, int win, int lose) {
		int[] ans = new int[list.size()];
		for(int $ = 0; $ < PEOPLE; $++) {
			if(list.get($) == win) {
				ans[$] = 1;
			} else {
				ans[$] = 2;
			}
		}
		return ans;
	}

}