Help us understand the problem. What is going on with this article?

Hackerrankにおける入力テンプレ

More than 1 year has passed since last update.

イントロ

hackerrankを解くとき必ずと言って数字や文字列を受け取ります。
慣れてしまえば使いこなせますが、最初はよくわからないと思います。
今回はそんな方に僕が使っているテンプレを紹介します。
プログラミング初心者のため間違いや、非効率的なものもありますが、お手柔らかにお願いします。

1行の文字列、数字

1行の文字列や数字を受け取る場合は単純です。
文字列の場合は

a = input()

整数の場合、少数の場合は順に

a = int(input())
a = float(input())

とすることで入力を受け取ることができます。

複数個の入力

例えば

1 2 3 4 5

と5つの数字を同時にリストとして受け取りたい場合は

a = list(map(int, input().strip().split()))
print(a)
>>[1, 2, 3, 4, 5]

map は第一引数に関数の種類(ここではint型)、第二引数に対象リスト(ここでは入力された要素)を受け取ります。一つずつ要素を受け取っていきます。
僕のイメージとして後に述べるfor分と似てます。

複数行の入力

例えばn個の文字列を受け取るとき・・・
n=2の時のフォーマットは

2
hacker
rank

となります。
この文字列をリストとして受け取りたい場合は、

n = int(input())
a = []
for _ in range(n):
    a.append(input())
print(a)

>>["hacker", "rank"]

として受け取ることができます。
まずnで受け取る分の個数を受け取ります。
次に文字列を入れる空のリストaを用意します。(a = [])
そしてfor文でn回一つずつ要素を受け取り、同時にappend()でリストaに追加しています。

まとめ

以上、hackerrankでよく使う入力の受け取り方を紹介しました。

自分の知らない型の入力が来ても
自分で対処できるように頑張りましょう。

logban
未来電子でインターンに参加し、プログラミングを学んでいます。 よろしくお願いします 。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away