みなさん、競技プログラミングはご存じですか?

競技プログラミングとはその名の通り、プログラミングのスキルを競うコンテストで、世界各国から多くのプログラマーやエンジニアが参加しています。

競技プログラミングの問題としては,主にコンピュータサイエンスや数学などをテーマにしたものが多く出題され、正確になおかつ素早くプログラムコードを記述することを求められます。

今回は、競技プログラミングを始めた人・始めたい人が必ず理解しないといけない「標準入力」を言語別にできるだけわかりやすく説明していきたいと思います。

是非最後までお読みください。

標準入力とは?

標準入力とは、キーボードなどからの入力データをプログラミングに送信することができる方法の一つです。

Atcoderなどの競技プログラミングを始めた際には、必ずと言っていいほど標準入力が必要になります。

例えば以下のような問題があります。

整数a,b,cが与えられます。

このとき、整数 a + b + cを表示してください。

競技プログラミングでは、a,b,cのテストパターンが複数用意されていて、それらのテストがすべて解答とあっていれば合格となります。

すなわち、a,b,cを使ってどうすれば解を導けるかを考える前に、a,b,cの入力を受け取ることが大前提となります。

もちろん標準入力は、JavaではJavaの文法を使った書き方、PythonではPythonの文法を使った書き方があります。

では、競技プログラミングの基本中の基本である標準入力を言語別に紹介していきます。

 

言語別・標準入力を紹介

Java

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        // Scannerクラスを使用して標準入力を読み取る準備をします
        Scanner scanner = new Scanner(System.in);

        // プロンプトを表示して入力を受け取ります
        System.out.print("何か入力してください: ");
        String input = scanner.nextLine(); // 1行の入力を読み取ります

        // 入力された値を表示します
        System.out.println("入力された値は: " + input);

        // Scannerを閉じます
        scanner.close();
    }
}

Python


# ユーザーからの入力を受け取ります
input_value = input("何か入力してください: ")

# 入力された値を表示します
print("入力された値は:", input_value)

Javascript


const readline = require("readline");

const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout,
});

rl.question("何か入力してください: ", (input) => {
  console.log("入力された値は:", input);

  rl.close();
});

PHP

<?php
// 標準入力からの入力を受け取る
$input = fgets(STDIN);

// 入力された値を表示する
echo "入力された値は:" . $input;
?>

Swift


// 標準入力からの入力を受け取る
if let input = readLine() {
    // 入力された値を表示する
    print("入力された値は: \(input)")
}

Ruby


# 標準入力からの入力を受け取る
input = gets.chomp

# 入力された値を表示する
puts "入力された値は: #{input}"

C


#include 

int main() {
    // 入力を受け取るためのバッファを定義します
    char buffer[100];

    // 標準入力からの入力を受け取ります
    printf("何か入力してください: ");
    fgets(buffer, sizeof(buffer), stdin);

    // 入力された値を表示します
    printf("入力された値は: %s", buffer);

    return 0;
}

C#


using System;

class Program
{
    static void Main()
    {
        // 標準入力からの入力を受け取る
        string input = Console.ReadLine();

        // 入力された値を表示する
        Console.WriteLine("入力された値は: " + input);
    }
}

 

まとめ

今回は競技プログラミングのための標準入力方法をに言語別に解説しました。

標準入力は、プログラミング言語でユーザーからの入力を受け取るための重要な機能です。さまざまなプログラミング言語において、標準入力を取得する方法があります。

それぞれの言語で異なる方法がありますが、いずれの言語でも標準入力を取得して処理することができます。標準入力の取り扱いは、プログラムの対話性やユーザー入力に応じた動作を実現するために不可欠です。

競技プログラミングを始めたい方は、ぜひ基本である標準入力を学習してください。

また、国内で最も有名な競技プログラミングAtcoderに関する詳細は公式サイトでご確認ください。

【AtCoder:競技プログラミングコンテストを開催する国内最大のサイト:https://atcoder.jp/