빠른 A+B (15552)

Created:

Baekjoon No.15552 문제
입출력 시간을 줄여야 한다는데..

Bash

Bash
1
2
3
4
5
read n
for ((i=0; i<n; i++)); do
	read a b
	echo $((a + b))
done

…는 시간 초과.
무슨 방법을 써도 다 시간 초과다.

C

C
1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>

int main(void) {
	int n, a, b;
	scanf("%d", &n);
	while (0 < n) {
		scanf("%d %d", &a, &b);
		printf("%d\n", a+b);
		n--;
	}
	return 0;
}

C언어는 원래 빠르다..

Node.js

JavaScript
1
2
3
4
5
6
7
let [n, ...list] = require("fs").readFileSync(0).toString().trim().split("\n");
let o = [];
for (let l of list) {
	let [a, b] = l.split(" ").map(Number);
	o.push(a+b);
}
console.log(o.join("\n"));

반복문 안에서 하나씩 로그를 찍으면 시간 초과가 뜨기 때문에 마지막에 한 번에 출력하면 된다.

PHP

PHP
1
2
3
4
5
6
7
8
9
<?php
	fscanf(STDIN, "%d", $n);
	$arr = [];
	for ($i=0; $i<$n; $i++) {
		fscanf(STDIN, "%d %d", $a, $b);
		array_push($arr, $a + $b);
	}
	echo join("\n", $arr);
?>

Node.js와 마찬가지.

Python3

Python
1
2
3
4
5
6
import sys

n = int(sys.stdin.readline().strip())
for i in range(n):
    ab = map(int, sys.stdin.readline().strip().split())
    print(sum(ab))

문제에 적힌 방법대로 input() 대신 sys.stdin.readline()을 사용하면 된다.

Ruby

Ruby
1
2
3
4
5
n = gets.chomp.to_i
for m in 0...n
  a, b = gets.chomp.split().map {|i| i.to_i}
  puts a+b
end

의외로 Ruby가 그냥 된다..?