25~32/91
-
2023-02-23 20:27:00 입력받은 값을 그대로 출력하라. Bash while :; do read str if [ "$str" == "" ]; then break fi echo "$str" done 따옴표로 묶지 않으면 출력 형식이 잘못되었다고 뜬다. Node.js const [...arr] = require("fs").readFileSync(0).toString().trim().split("\n"); console.log(arr.join("\n")); Python3 try: while 1: print(input()) except: pass Ruby begin while 1 puts gets.chomp end rescue nil end
-
2023-02-23 20:23:00 첫 글자와 마지막 글자를 출력하라. Bash read t for ((i=0; i<t; i++)); do read str echo ${str::1}${str: -1} done Node.js const [t, ...arr] = require("fs").readFileSync(0).toString().trim().split("\n"); for (let str of arr) { console.log( str[0] + str[str.length-1] ); } Python3 t = int(input()) for i in range(t): a = input() print(a[0] + a[-1]) Ruby t = gets.chomp.to_i for i in 0...t str = gets.chomp puts str[0] + str[-1] end
-
2023-02-23 18:09:00 i번 바구니부터 j번 바구니까지 공의 순서를 역순으로 뒤집어라. Bash read n m arr=() for ((i=0; i<=n; i++)); do arr+=($i); done for ((idx=0; idx<m; idx++)); do read i j for ((jdx=i; jdx<=(i+j)/2; jdx++)); do bak=${arr[$jdx]} arr[$jdx]=${arr[$((j-jdx+i))]} arr[$((j-jdx+i))]=$bak done done echo "${arr[@]:1}" Node.js const [[n, m], ...input] = require("fs").readFileSync(0).toString().trim().split("\n").map(x => x.split(" ").map(Number)); let arr = [...Array(n+1).keys()]; for (let [i, j] of input) { for (let idx=i; idx<=(i+j)/2; idx++) { let bak = arr[idx]; arr[idx] = arr[j-idx+i]; arr[j-idx+i] = bak; } } console.log( arr.slice(1).join(" ") ); Python3 n, m = map(int, input().split()) arr = [i for i in range(n+1)] for idx in range(m): i, j = map(int, input().split()) for jdx in range(i, int((i+j)/2)+1): arr[jdx], arr[j-jdx+i] = arr[j-jdx+i], arr[jdx] print( ' '.join(map(str, arr[1:])) ) Ruby n, m = gets.chomp.split().map {|i| i.to_i} arr = (0..n).to_a for idx in 0...m i, j = gets.chomp.split().map {|i| i.to_i} for jdx in i..(i+j)/2 arr[jdx], arr[j-jdx+i] = arr[j-jdx+i], arr[jdx] end end puts arr[1, n].join(" ")
-
2023-02-23 17:46:00 i번 바구니와 j번 바구니의 공을 서로 바꿔라. Bash read n m arr=() for ((i=0; i<=n; i++)); do arr+=($i); done for ((idx=0; idx<m; idx++)); do read i j bak=${arr[$i]} arr[$i]=${arr[$j]} arr[$j]=$bak done echo "${arr[@]:1}" Node.js const [[n, m], ...input] = require("fs").readFileSync(0).toString().trim().split("\n").map(x => x.split(" ").map(Number)); let arr = [...Array(n+1).keys()]; for (let [i, j] of input) { let bak = arr[i]; arr[i] = arr[j]; arr[j] = bak; } console.log( arr.slice(1).join(" ") ); Python3 n, m = map(int, input().split()) arr = [i for i in range(n+1)] for idx in range(m): i, j = map(int, input().split()) arr[i], arr[j] = arr[j], arr[i] print( ' '.join(map(str, arr[1:])) ) Ruby n, m = gets.chomp.split().map {|i| i.to_i} arr = (0..n).to_a for idx in 0...m i, j = gets.chomp.split().map {|i| i.to_i} arr[i], arr[j] = arr[j], arr[i] end puts arr[1, n].join(" ")
-
2023-02-23 16:53:00 i번 바구니부터 j번 바구니까지 k번 공을 넣어라. Bash read n m arr=() for ((i=0; i<n; i++)); do arr+=(0); done for ((idx=0; idx<m; idx++)); do read i j k for ((jdx=i-1; jdx<j; jdx++)); do arr[$jdx]=$k done done echo "${arr[@]}" Node.js const [[n, m], ...input] = require("fs").readFileSync(0).toString().trim().split("\n").map(x => x.split(" ").map(Number)); let arr = Array(n).fill(0); for (let [i, j, k] of input) { for (let idx=i-1; idx<j; idx++) { arr[idx] = k; } } console.log( arr.join(" ") ); Python3 n, m = map(int, input().split()) arr = ["0" for i in range(n)] for idx in range(m): i, j, k = map(int, input().split()) for jdx in range(i-1, j): arr[jdx] = str(k) print( ' '.join(arr) ) Ruby n, m = gets.chomp.split().map {|i| i.to_i} arr = Array.new(n, 0) for idx in 0...m i, j, k = gets.chomp.split().map {|i| i.to_i} for jdx in i-1...j arr[jdx] = k end end puts arr.join(" ")
-
2023-02-22 20:28:00 손 코딩..? Bash read n o="" for ((i=0; i<n; i+=4)); do o+="long " done echo $o"int" i를 4씩 증가하는 방법 Node.js let n = Number(require("fs").readFileSync(0).toString().trim()); let o = ""; for (let i=0; i<n/4 i++) { o += "long "; } console.log(o + "int"); i를 n/4까지 1씩 증가하는 방법 PHP <?php fscanf(STDIN, "%d", $n); for ($i=0; $i<$n; $i+=4) { echo "long "; } echo "int"; ?> 반복문을 돌면서 줄바꿈을 하지 않고 바로 출력하는 방법 Python3 n = int(input()) o = ["long" for i in range(0, n, 4)] print(" ".join(o) + " int") range(0, n, 4): 0부터 4씩 증가하여 n 미만까지의 값을 리스트로 만듦 Ruby n = gets.chomp.to_i o = "" for i in (0...n).step(4) o += "long " end puts o + "int" (0...n).step(4)와 Python의 range(0, n, 4)는 다르다. Python의 range는 배열을 생성하지만, Ruby의 step은 앞에 주어진 범위에서 4씩 건너뛰는 방식이다. 즉, arr = ('a'..'z'); arr.step(2)도 가능하다.
-
2023-02-22 18:21:00 A+B 문제에서 변수 하나만 더 사용하면 된다. Bash read a b c echo $((a + b + c)) C #include <stdio.h> int main(void) { int a, b, c; scanf("%d %d", &a, &b, &c); printf("%d", a+b+c); return 0; } Node.js let [a, b, c] = require("fs").readFileSync(0).toString().trim().split(" ").map(Number); console.log(a + b + c); PHP <?php fscanf(STDIN, "%d %d", $a, $b, $c); echo $a + $b + $c; ?> Python3 a, b, c = map(int, input().split()) print(a+b+c) Ruby a, b, c = gets.chomp.split().map {|i| i.to_i} puts a+b+c