Tag - PHP

17~24/46
  • A + B - 5 (10952)

    2023-01-29 19:49:00 입력한 값이 0 0이면 반복문을 빠져나온다. Bash while :; do read a b if [ "$a$b" == "00" ]; then break fi echo $((a + b)) done while : == while true == 무한루프 C #include <stdio.h> int main(void) { int a, b; while (1) { scanf("%d %d", &a, &b); if (a == 0 && b == 0) { break; } printf("%d\n", a+b); } return 0; } Node.js let list = require("fs").readFileSync(0).toString().trim().split("\n"); for (let l of list.slice(0,-1)) { let [a, b] = l.split(" ").map(Number); console.log(a+b); } PHP <?php while (1) { fscanf(STDIN, "%d %d", $a, $b); if ($a == 0 && $b == 0) { break; } echo $a + $b."\n"; } ?> Python3 while 1: a, b = map(int, input().split()) if a==0 and b==0: break print(a+b) Ruby while 1 a, b = gets.chomp.split().map {|i| i.to_i} break if a==0 and b==0 puts a+b end
  • 별 찍기 - 2 (2439)

    2023-01-29 18:25:00 빈 공간은 출력하지 않는 게 아니라 공백 한 칸을 출력해야 한다. Bash read n for ((i=1; i<=n; i++)); do o="" for ((j=0; j<i; j++)); do o+=\* done printf "%${n}s\n" "$o" done printf 명령어를 사용하여 n 자리로 출력하며 문자는 오른쪽으로 정렬. 왼쪽 정렬은 %-5s 형식, 중앙 정렬은 없다. 다른 언어와 달리 자릿수를 지정할 때 변수를 사용할 수 있기 때문에 가능한 방법. C #include <stdio.h> int main(void) { int n; scanf("%d", &n); for (int i=1; i<=n; i++) { for (int j=0; j<n-i; j++) { printf(" "); } for (int j=0; j<i; j++) { printf("*"); } printf("\n"); } return 0; } Node.js let n = Number(require("fs").readFileSync(0).toString().trim()); for (let i=1; i<=n; i++) { let o = []; for (let j=0; j<n; j++) { o.push(j < n-i ? " " : "*"); } console.log(o.join("")); } PHP <?php fscanf(STDIN, "%d", $n); for ($i=1; $i<=$n; $i++) { $o = []; for ($j=0; $j<$n; $j++) { array_push($o, $j < $n-$i ? " " : "*"); } echo join("", $o)."\n"; } ?> Python3 n = int(input()) for i in range(1, n+1): o = [] for j in range(n): o.append(" " if j < n-i else "*") print("".join(o)) Ruby n = gets.chomp.to_i for i in 1..n o = [] for j in 0...n o.push(j < n-i ? " " : "*") end puts o.join("") end
  • 별 찍기 - 1 (2438)

    2023-01-29 18:09:00 이중 for문을 사용해야 한다. Bash read n for ((i=1; i<=n; i++)); do for ((j=0; j<i; j++)); do printf \* done echo done Bash에도 printf 명령어가 있다. echo 명령어에 -n 옵션을 사용하면 출력 후 줄바꿈을 하지 않기 때문에 printf 대신 echo -n을 사용해도 된다. C #include <stdio.h> int main(void) { int n; scanf("%d", &n); for (int i=1; i<=n; i++) { for (int j=0; j<i; j++) { printf("*"); } printf("\n"); } return 0; } Node.js let n = Number(require("fs").readFileSync(0).toString().trim()); let o = ""; for (let i=1; i<=n; i++) { o = ""; for (let j=0; j<i; j++) { o+="*"; } console.log(o); } PHP <?php fscanf(STDIN, "%d", $n); for ($i=1; $i<=$n; $i++) { for ($j=0; $j<$i; $j++) { echo "*"; } echo "\n"; } ?> Python3 n = int(input()) for i in range(n): print("*"*(i+1)) Ruby n = gets.chomp.to_i for i in 1..n puts "*"*i end
  • A+B - 8 (11022)

    2023-01-29 18:00:00 이전 문제에서 출력 형식만 바꾸면 된다. Bash read n for ((i=0; i<n; i++)); do read a b echo Case \#$i: $a + $b = $((a + b)) done C #include <stdio.h> int main(void) { int n, a, b; scanf("%d", &n); for (int i=0; i<n; i++) { scanf("%d %d", &a, &b); printf("Case #%d: %d + %d = %d\n", i+1, a, b, a+b); } return 0; } Node.js let [n, ...list] = require("fs").readFileSync(0).toString().trim().split("\n"); for (let i in list) { let [a, b] = list[i].split(" ").map(Number); console.log(`Case #${i*1+1}: ${a} + ${b} = ${a+b}`); } PHP <?php fscanf(STDIN, "%d", $n); for ($i=1; $i<=$n; $i++) { fscanf(STDIN, "%d %d", $a, $b); echo "Case #$i: $a + $b = ".$a + $b."\n"; } ?> Python3 n = int(input()) for i in range(n): a, b = map(int, input().split()) print("Case #{}: {} + {} = {}".format(i+1, a, b, a+b)) Ruby n = gets.chomp.to_i for i in 1..n a, b = gets.chomp.split(" ").map {|i| i.to_i} puts "Case ##{i}: #{a} + #{b} = #{a+b}" end
  • A+B - 7 (11021)

    2023-01-29 17:15:00 10950번 문제에서 출력 형식만 바꾸면 된다. Bash read n for ((i=0; i<n; i++)); do read a b echo Case \#$i: $((a + b)) done C #include <stdio.h> int main(void) { int n, a, b; scanf("%d", &n); for (int i=0; i<n; i++) { scanf("%d %d", &a, &b); printf("Case #%d: %d\n", i+1, a+b); } return 0; } Node.js let [n, ...list] = require("fs").readFileSync(0).toString().trim().split("\n"); for (let i in list) { let [a, b] = list[i].split(" ").map(Number); console.log(`Case #${i*1+1}: ${a+b}`); } PHP <?php fscanf(STDIN, "%d", $n); for ($i=1; $i<=$n; $i++) { fscanf(STDIN, "%d %d", $a, $b); echo "Case #$i: ".$a + $b."\n"; } ?> Python3 n = int(input()) for i in range(n): a, b = map(int, input().split()) print("Case #{}: {}".format(i+1, a+b)) Ruby n = gets.chomp.to_i for i in 1..n a, b = gets.chomp.split(" ").map {|i| i.to_i} puts "Case ##{i}: #{a+b}" end
  • 빠른 A+B (15552)

    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가 그냥 된다..?
  • 영수증 (25304)

    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"
  • 합 (8393)

    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()