65~72/91
-
2023-01-29 15:47:00 입출력 시간을 줄여야 한다는데.. Bash read n for ((i=0; i<n; i++)); do read a b echo $((a + b)) done …는 시간 초과. 무슨 방법을 써도 다 시간 초과다. C #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 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 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 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 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가 그냥 된다..?
-
2023-01-29 13:49:00 입력받은 금액에서 물건 가격을 모두 뺀 후에 남은 액수가 0이면 일치. Bash read t read n for ((i=0; i<n; i++)); do read p m ((t -= p*m)) done [ $t == 0 ] && echo "Yes" || echo "No" C #include <stdio.h> int main(void) { int t, n, p, m; scanf("%d", &t); scanf("%d", &n); while (0 < n) { scanf("%d %d", &p, &m); t-=p*m; n--; } printf("%s\n", t == 0 ? "Yes" : "No"); return 0; } Node.js let [t, n, ...list] = require("fs").readFileSync(0).toString().trim().split("\n"); t*=1; for (let l of list) { let [p, m] = l.split(" ").map(Number); t-=p*m; } console.log(t == 0 ? "Yes" : "No"); t*=1 == t = Number(t) PHP <?php fscanf(STDIN, "%d", $t); fscanf(STDIN, "%d", $n); for ($i=0; $i<$n; $i++) { fscanf(STDIN, "%d %d", $p, $m); $t -= $p * $m; } echo $t == 0 ? "Yes" : "No"; ?> Python3 t = int(input()) n = int(input()) for i in range(n): p, m = map(int, input().split()) t-=p*m print("Yes" if t==0 else "No") Ruby t = gets.chomp.to_i n = gets.chomp.to_i for i in 0...n p, m = gets.chomp.split().map {|i| i.to_i} t-=p*m end puts t == 0 ? "Yes" : "No"
-
2023-01-29 13:28:00 팩토리얼의 덧셈 버전..? Bash read n s=0 for ((i=1; i<=n; i++)); do ((s += i)) done echo $s C #include <stdio.h> int main(void) { int n, s = 0; scanf("%d", &n); for (int i=1; i<=n; i++) { s+=i; } printf("%d\n", s); return 0; } Node.js let n = Number(require("fs").readFileSync(0).toString().trim()); let s = 0; while (0 < n) { s += n; n--; } console.log(s); PHP <?php fscanf(STDIN, "%d", $n); echo array_sum(range(1, $n)); ?> Python3 n = int(input()) print( sum(range(n+1)) ) Ruby n = gets.chomp.to_i puts (1..n).sum()
-
2023-01-29 12:05:00 한 번에 출력하지 않아도 된다. Bash read t #for i in $(seq $t); do for ((i=0; i<t; i++)); do read a b echo $((a + b)) done seq 명령어도 먹히지 않는다… C #include <stdio.h> int main(void) { int t, a, b; scanf("%d", &t); for (int i=0; i<t; i++) { scanf("%d %d", &a, &b); printf("%d\n", a+b); } return 0; } Node.js let [t, ...list] = require("fs").readFileSync(0).toString().trim().split("\n"); for (let i of list) { let [a, b] = i.split(" ").map(Number); console.log(a + b); } PHP <?php fscanf(STDIN, "%d", $n); for ($i=0; $i<$n; $i++) { fscanf(STDIN, "%d %d", $a, $b); echo $a + $b."\n"; } ?> Python3 t = int(input()) for i in range(t): a, b = map(int, input().split()) print(a+b) Ruby t = gets.chomp.to_i for i in 0...t a, b = gets.chomp.split(" ").map {|i| i.to_i} puts a+b end
-
2023-01-29 11:27:00 간단한 구구단 Bash read n for i in {1..9}; do echo $n \* $i = $((n * i)) done C #include <stdio.h> int main(void) { int n; scanf("%d", &n); for (int i=1; i<=9; i++) { printf("%d * %d = %d\n", n, i, n*i); } return 0; } Node.js let n = Number(require("fs").readFileSync(0).toString().trim()); for (let i=1; i<=9; i++) { console.log(`${n} * ${i} = ${n*i}`); } PHP <?php fscanf(STDIN, "%d", $n); for ($i=1; $i<=9; $i++) { echo "$n * $i = ".$n*$i."\n"; } ?> Python3 n = int(input()) for i in range(1, 10): print("{} * {} = {}".format(n, i, n*i)) Ruby n = gets.chomp.to_i for i in 1..9 puts "#{n} * #{i} = #{n*i}" end
-
2023-01-27 21:48:00 불법 도박 신고는 1855-0112.. Bash read a b c if [ $a == $b -a $b == $c ]; then coin=$((10000 + a*1000)) elif [ $a == $b -o $b == $c -o $a == $c ]; then d=$((b == c ? b : a)) coin=$((1000 + d*100)) else d=$((a < b ? b : a)) d=$((d < c ? c : d)) coin=$((d * 100)) fi echo $coin C #include <stdio.h> int main(void) { int a, b, c; scanf("%d %d %d", &a, &b, &c); if ( a == b && b == c ) { printf("%d", 10000+a*1000); } else if ( a == b || b == c || a == c ) { printf("%d", 1000 + (b == c ? b : a)*100); } else { a = a < b ? b : a; a = a < c ? c : a; printf("%d", a*100); } return 0; } Node.js let [a, b, c] = require("fs").readFileSync(0).toString().trim().split(" ").map(Number); let coin; if (a == b && b == c) { coin = 10000 + a*1000; } else if (a == b || b == c || a == c) { coin = 1000 + (b == c ? b : a)*100; } else { coin = Math.max(a, b, c)*100; } console.log(coin); PHP <?php fscanf(STDIN, "%d %d %d", $a, $b, $c); if ($a == $b && $b == $c) { $coin = 10000 + $a*1000; } else if ($a == $b || $b == $c || $a == $c ) { $coin = 1000 + ($b == $c ? $b : $a)*100; } else { $coin = max($a, $b, $c)*100; } echo $coin; ?> Python3 a, b, c = map(int, input().split()) if a==b and b==c: coin = 10000 + a*1000 elif a==b or b==c or a==c: coin = 1000 + (b if b==c else a)*100 else: coin = max(a, b, c)*100 print(coin) Ruby a, b, c = gets.chomp.split().map { |i| i.to_i } if a==b and b==c coin = 10000 + a*1000 elsif a==b or b==c or a==c coin = 1000 + (b==c ? b : a)*100 else coin = [a, b, c].max()*100 end puts coin
-
2023-01-27 21:35:00 조건문 문제를 조건문 없이 풀 수 있다..? Bash read a b read c ((b += c)) ((a += b/60)) ((a %= 24)) ((b %= 60)) echo $a $b C #include <stdio.h> int main(void) { int a, b, c; scanf("%d %d", &a, &b); scanf("%d", &c); b += c; a += b/60; a = a%24; b = b%60; printf("%d %d", a, b); return 0; } Node.js let [a, b, c] = require("fs").readFileSync(0).toString().trim().split(/ |\n/).map(Number); b += c; a += Math.floor(b/60); a = a%24; b = b%60; console.log(a, b); Number, Math.floor 대신 parseInt를 사용해도 된다. PHP <?php fscanf(STDIN, "%d %d", $a, $b); fscanf(STDIN, "%d", $c); $b += $c; $a += floor($b/60); $a = $a%24; $b = $b%60; echo "$a $b"; ?> Python3 a, b = map(int, input().split()) c = int(input()) b += c a += b//60 a = a%24 b = b%60 print(a, b) Ruby a, b = gets.chomp.split().map {|i| i.to_i} c = gets.chomp.to_i b += c a += b/60 a = a%24 b = b%60 puts "#{a} #{b}"
-
2023-01-27 20:58:00 입력받은 시/분 중 분에 45분을 빼고 그 결과가 0보다 작으면 시간에 1을 빼고 분에 60을 더한다. 이때 if문을 사용하여 시간이 마이너스일 때 24를 더해줘야 하지만 if문을 사용하지 않고 해결할 수 있다. Bash read a b ((b -= 45)) if [ $b -lt 0 ]; then a=$(((a-1+24)%24)) ((b+=60)) fi echo $a $b Bash에도 다른 언어들처럼 += 연산자가 존재하긴 하지만, 덧셈이 아닌 문자열을 추가하기 위해 사용된다. 그러니까 b=1일 때 b+=1의 값은 2가 아닌 11이 된다. 그래서 -=, *=, /= 등과 같은 연산자는 존재하지 않는다. 단, $((...)), let 등 연산 명령어에서는 모두 사용할 수 있다. C #include <stdio.h> int main(void) { int a, b; scanf("%d %d", &a, &b); b -= 45; if ( b < 0 ) { a = (a-1+24)%24; b += 60; } printf("%d %d", a, b); return 0; } Node.js let [a, b] = require("fs").readFileSync(0).toString().trim().split(" ").map(Number); b -= 45; if (b < 0) { a = (a-1+24)%24; b += 60; } console.log(`${a} ${b}`); PHP <?php fscanf(STDIN, "%d %d", $a, $b); $b -= 45; if ($b < 0) { $a = ($a-1+24)%24; $b += 60; } echo "$a $b"; ?> Python3 a, b = map(int, input().split()) b -= 45 if b < 0: a = (a-1+24)%24 b += 60 print(a, b) Ruby a, b = gets.chomp.split().map {|i| i.to_i} b -= 45 if b < 0 a = (a-1+24)%24 b += 60 end puts "#{a} #{b}"