判断推理の順序関係の問題をJavaで解いてみました。(^_^;
A〜Gの7人が体育祭で短距離走をしたところ、次のア〜カの結果であった。
このことから判断して妥当なものはどれか?ただし、同着はいなかったものとする。
ア AはBよりは後に、Gより先にゴールした。
イ Bは1番目にゴールしなかった。
ウ Dは5番目にゴールしなかった。
エ Cの次にEがゴールした。
オ Fの直前にDがゴールした。
カ EとFの間に3人がゴールした。
選択肢
1 Aが1番目にゴールした。
2 Bは3番目にゴールした。
3 Cは2番目にゴールした。
4 Dは6番目にゴールした。
5 Eは7番目にゴールした。
●Rank01.java
/* * Rank01.java * */ class Rank01 { static final String RUNNER="ABCDEFG"; static void swap(char[] s, int i, int j) { char t = s[i]; s[i] = s[j]; s[j] = t; } static boolean next_perm(char[] p, int n, int r) { int i, j, k; if(r <= 0 || n < r) return(false); for(i = r + 1; i <= n-1; i++) for(j = i; j >= r + 1 && p[j-1] < p[j]; j--) swap(p,j,j-1); for(i = n - 1; i > 0 && p[i-1] >= p[i]; i--); if(i==0) return(false); for(j = n - 1; j > i && p[i-1] >= p[j]; j--); swap(p,j,i-1); for(k = 0; k <= (n-i-1)/2; k++) swap(p,i+k,n-k-1); return(true); } // xがa[]の何番目にあるか調べるメソッド static int getPos(char[] a, char x) { for(int i=0; i<a.length; i++) if(a[i]==x) return(i); // あるときは、0〜a.length-1を返す. return(-1); // ないときは、-1を返す. } public static void main(String[] args) { char[] r=RUNNER.toCharArray(); boolean[] c={true,true,true,true,true}; long tm=System.nanoTime(); // Timer Start do{ //if(!()) continue; // 条件 if(!(getPos(r,'B')< getPos(r,'A'))) continue; // 条件ア if(!(getPos(r,'A')< getPos(r,'G'))) continue; // 条件ア if(!(getPos(r,'B')+1!=1)) continue; // 条件イ if(!(getPos(r,'D')+1!=5)) continue; // 条件ウ if(!(getPos(r,'C')+1==getPos(r,'E'))) continue; // 条件エ if(!(getPos(r,'F')-1==getPos(r,'D'))) continue; // 条件オ if(!(Math.abs(getPos(r,'E')-getPos(r,'F'))==3+1)) continue; // 条件カ // チェックを潜り抜けたものだけを表示 System.out.println("#: 1234567"); System.out.println("R: "+new String(r)); System.out.println(); // 選択肢のチェック if(getPos(r,'A')+1==1) c[0]&=true; else c[0]&=false; if(getPos(r,'B')+1==3) c[1]&=true; else c[1]&=false; if(getPos(r,'C')+1==2) c[2]&=true; else c[2]&=false; if(getPos(r,'D')+1==6) c[3]&=true; else c[3]&=false; if(getPos(r,'E')+1==7) c[4]&=true; else c[4]&=false; }while(next_perm(r,7,7)); System.out.print("∴"); for(int i=0; i< 5; i++) if(c[i]) System.out.println(" "+(i+1)); tm=System.nanoTime()-tm; // Timer Stop System.out.printf("Runtime : %.3f [sec]\n",(double)tm/1e9); } }
●実行結果
#: 1234567 R: DFBACEG ∴ 2 Runtime : 0.003 [sec]
畑中敦子の判断推理の新兵器!(公務員試験/畑中敦子シリーズ)
- 作者: 畑中敦子
- 出版社/メーカー: 東京リーガルマインド
- 発売日: 2003/03/24
- メディア: 単行本
- 購入: 7人 クリック: 23回
- この商品を含むブログ (13件) を見る
上・中級公務員 標準判断推理―確かな解答力が身につく“基本書”
- 作者: 田辺勉
- 出版社/メーカー: 実務教育出版
- 発売日: 2001/10/01
- メディア: 単行本
- 購入: 15人 クリック: 142回
- この商品を含むブログ (22件) を見る
公務員試験 新スーパー過去問ゼミ3 判断推理 (公務員試験新スーパー過去問ゼミ3)
- 作者: 資格試験研究会
- 出版社/メーカー: 実務教育出版
- 発売日: 2010/08/31
- メディア: 単行本(ソフトカバー)
- 購入: 4人 クリック: 4回
- この商品を含むブログ (1件) を見る