実技型の資格検定 PAST(アルゴリズム実技検定)とは




いつもお世話になっております。

プロクラスの國府です。

最近涼しくなってきましたね。皆様お体の方くれぐれもお気をつけください。

今回は、以前テレビを見ていて興味があったので

アルゴリズム実技検定PASTを紹介したいと思います。

公式サイト https://past.atcoder.jp/

そのテレビの動画がyoutubeにアップされていたので、埋め込みます。

IT系の資格は、どちらかというと知識型(選択問題や記述式など)が

多いです。

今回紹介する資格は、与えられた問題をアルゴリズムや論理思考能力や

プログラムの基本知識を使って実際にプログラムを書いて、実行させるという

実践型の資格になっています。

使用するプログラム言語も,PHP, Java, C, Pythonなど多くの言語から

自由に選ぶことができるので、得意な言語で挑戦できます。

使うエディタも制限はありません。

資格に概要について下記のとおりです

  • 制限時間は、5時間で15問
  • 問題毎に、プログラムの実行時間やメモリの使用量内で、プログラムを動かす必要がある
  • インターネット検索や書籍の閲覧は可能
  • 合計点数が25点でエントリー、40点で初級、60点で中級、80点で上級、90点でエキスパートに認定されます
  • オンライン受験可能、試験費用は、8,800円(税込)

どんな問題がでると、以下のようなものがあり私も挑戦してみました。

 

問題文
6 つの相異なる整数 A, B, C, D, E, F が与えられる。
このうち 3 番目に大きい数を調べるプログラムを作成せよ。

制約
1≦A,B,C,D,E,F≦100
A,B,C,D,E,F はすべて異なる。
入力中の値はすべて整数である。

入力
入力は以下の形式で標準入力から与えられる。
A B C D E F

出力
3 番目に大きい整数を出力せよ。

私が, Python3で作ったプログラムは、下記のとおりです

#!/usr/bin/env python
# -*- coding:utf-8 -*-

# バブルソートで、配列の要素を降順に並べ替える
def bubleSortForDes(nl):
 for i inrange(len(nl)):
  for j inrange(len(nl)-1, i, -1):
   if nl[j] > nl[j-1]:
    nl[j], nl[j-1] = nl[j-1], nl[j]

 return nl

nl = [int(x) for x in input(‘6つの異なる整数を入力: ‘).split()]
snl = bubleSortForDes(nl)
print(‘3番目に大きい数は {max3}’.format(max3=nl[2]))
 
整列は、バブルソートを自作しましたが、pythonの組み込み関数 sort を使
 
うと下記のようになります。すごくコンパクトになりました。
 
#!/usr/bin/env python
# -*- coding:utf-8 -*-

nl = [int(x) for x in input(‘6つの異なる整数を入力: ‘).split()]
snl = sorted(nl, reverse=True)
print(‘3番目に大きい数は {max3}’.format(max3=snl[2]))
 
こちらの問題は簡単な問題になります。
 
プログラム、アルゴリズムに自信のある方は受験してみてはいかがでしょうか。
 
以上、「アルゴリズム実技検定 PAST」の紹介でした。