体験を伝える―『ガジェット通信』の考え方

面白いものを探しにいこう 本物を体験し体感しよう 会いたい人に会いに行こう 見たことのないものを見に行こう そしてそれをやわらかくみんなに伝えよう [→ガジェ通についてもっと詳しく] [→ガジェット通信フロアについて]

第147回「今週のアルゴリズム:照明を消さずに端から端まで移動」正解者発表

「今週のアルゴリズム」とは

「今週のアルゴリズム」問題は、毎週火曜日にちょっとした問題を出題し、正解するとニックネームを掲載していくというシリーズ問題です。そして、正解した方全員に「たいへんよくできました」バッジも付与されます。

第147回は「今週のアルゴリズム:照明を消さずに端から端まで移動」の問題です。

問題文「第147回 今週のお題:照明を消さずに端から端まで移動」

第147回「今週のアルゴリズム:照明を消さずに端から端まで移動」正解者発表

夜、家に帰ったら真っ暗。暗い部屋を移動するのは大変です。
そこで、室内の照明をオン・オフするスイッチが複数個所に設置されていることは珍しくありません。
例えば、廊下の電球などの場合、玄関とリビングなどのどちらでも切り替えが可能になっています。

そこで、少なくとも一つの照明をつけたまま移動することを考えます。
今回は n 個の照明が一列に並んでいるものとします。
それぞれの照明は、向かい合うスイッチと両隣のスイッチで操作できます。

最初に左端の照明だけを点灯した状態でスタートし、右端の照明だけを点灯した状態にするまで、それぞれのスイッチを操作します。
ただ、一つのスイッチを操作すると、その正面と両隣にある照明もオン・オフが切り替わります。
(左端と右端のスイッチは正面の照明と、その隣りにある照明だけが切り替わります)

例えば、n = 4 のとき、以下のような4つのスイッチと4つの照明があるとします。
左端のスイッチを押すと、左端の2つの照明が切り替わり、2つ目の照明だけが点灯します。
次に右から2つ目のスイッチを押すと、図のように3箇所が切り替わるため、右の2つが点灯します。
この場合は、まだ右端だけが点灯した状態にはなっていません。

イメージ

n = 4 のとき、最初に左から2番目のスイッチを押し、次に右から2番目のスイッチを押すと、いずれかの照明が点灯したまま、右端の照明だけを点灯するようにできます。
つまり、最短で2回スイッチを押すと、目的を満たすことができます。

標準入力から n が与えられたとき、最短の手順を求め、スイッチを押した回数を標準出力に出力してください。
なお、n は 2≦n≦16を満たす整数とします。

【入出力サンプル】
標準入力
4

標準出力
2

正解者

おめでとうございます!正解者のみなさんです。(新着順)

1 2次のページ
CodeIQ MAGAZINEの記事一覧をみる
  • 誤字を発見した方はこちらからご連絡ください。
  • ガジェット通信編集部への情報提供はこちらから
  • 記事内の筆者見解は明示のない限りガジェット通信を代表するものではありません。