Tag - Ruby

49~56/67
  • 알람 시계 (2884)

    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}"
  • 사분면 고르기 (14681)

    2023-01-27 20:00:00 if문과 삼항 연산자. Bash read x read y if [ 0 -lt $x ]; then o=$((0 < y ? 1 : 4)) else o=$((0 < y ? 2 : 3)) fi echo $o C int main(void) { int x, y; scanf("%d %d", &x, &y); if (0 < x) { printf("%d\n", 0<y ? 1 : 4); } else { printf("%d\n", 0<y ? 2 : 3); } return 0; } Node.js const [x, y] = require("fs").readFileSync(0).toString().trim().split("\n").map(Number); let o; if (0 < x) { o = 0 < y ? 1 : 4; } else { o = 0 < y ? 2 : 3; } console.log(o); PHP <?php fscanf(STDIN, "%d", $x); fscanf(STDIN, "%d", $y); if (0 < $x) { $o = 0 < $y ? 1 : 4; } else { $o = 0 < $y ? 2 : 3; } echo $o; ?> Python3 x = int(input()) y = int(input()) if 0<x: o = 1 if 0<y else 4 else: o = 2 if 0<y else 3 print(o) Ruby x = gets.chomp.to_i y = gets.chomp.to_i if 0<x o = 0<y ? 1 : 4 else o = 0<y ? 2 : 3 end puts o
  • 윤년 (2753)

    2023-01-27 19:49:00 if와 else만 필요한 조건문은 대신 삼항 연산자를 사용하는 게 최고.. Bash read a test $((a%4)) == 0 -a $((a%100)) != 0 -o $((a%400)) == 0 && o=1 || o=0 echo $o $((...))와 같은 연산식 밖에서는 삼항 연산자가 별도로 존재하지 않지만 비슷하게 구현할 수 있다. C #include <stdio.h> int main(void) { int a; scanf("%d", &a); printf("%d\n", a%4 == 0 && a%100 != 0 || a%400 == 0 ? 1 : 0); return 0; } Node.js let a = Number(require("fs").readFileSync(0).toString().trim()); let o = a%4 == 0 && a%100 != 0 || a%400 == 0 ? 1 : 0; console.log(o); PHP <?php fscanf(STDIN, "%d", $a); $o = $a%4 == 0 && $a%100 != 0 || $a%400 == 0 ? 1 : 0; echo $o; ?> Python3 a = int(input()) o = 1 if a%4 == 0 and a%100 != 0 or a%400 == 0 else 0 print(o) Ruby a = gets.chomp.to_i o = (a%4 == 0 and a%100 != 0 or a%400 == 0) ? 1 : 0 puts o 괄호가 없으면 첫 조건문(a%4 == 0)의 결과안 true/false를 리턴한다.
  • 시험 성적 (9498)

    2023-01-27 19:37:00 이전 문제에서 조건만 많아진 if문 Bash read a o="F" if [ 90 -le $a ]; then o="A" elif [ 80 -le $a ]; then o="B" elif [ 70 -le $a ]; then o="C" elif [ 60 -le $a ]; then o="D" fi echo $o C #include <stdio.h> int main(void) { int a; scanf("%d", &a); if (90 <= a) { printf("A\n"); } else if (80 <= a) { printf("B\n"); } else if (70 <= a) { printf("C\n"); } else if (60 <= a) { printf("D\n"); } else { printf("F\n"); } return 0; } Node.js let a = Number(require("fs").readFileSync(0).toString().trim()); let o = "F"; if (90 <= a) { o = "A"; } else if (80 <= a) { o = "B"; } else if (70 <= a) { o = "C"; } else if (60 <= a) { o = "D"; } console.log(o); PHP <?php fscanf(STDIN, "%d", $a); $o = "F"; if (90 <= $a) { $o = "A"; } else if (80 <= $a) { $o = "B"; } else if (70 <= $a) { $o = "C"; } else if (60 <= $a) { $o = "D"; } echo $o; ?> Python3 a = int(input()) o = "F" if 90<=a: o = "A" elif 80<=a: o = "B" elif 70<=a: o = "C" elif 60<=a: o = "D" print(o) Ruby a = gets.chomp.to_i o = "F" if 90<=a; o = "A" elsif 80<=a; o = "B" elsif 70<=a; o = "C" elsif 60<=a; o = "D" end puts o
  • 두 수 비교하기 (1330)

    2023-01-27 18:24:00 간단한 if문 Bash read a b o="==" if [ $a -lt $b ]; then o="<" elif [ $a -gt $b ]; then o=">" fi echo $o [ 조건문 ]은 test 조건문 명령어의 다른 표현 방식이며, 더 자주 사용된다. test 명령어는 뒤에 오는 조건문이 참이면 0, 거짓이면 1을 리턴값으로 반환한다. Bash에서는 리턴값을 따로 출력하지 않으며 echo $? 명령어로 확인할 수 있다. -lt는 <, -gt는 > 대신 사용된다. <, >를 사용하려면 [ "0" < "$var" ]처럼 조건문에 사용되는 값을 따옴표로 감싸줘야 한다. C #include <stdio.h> int main(void) { int a, b; scanf("%d %d", &a, &b); printf("%s\n", a<b ? "<" : a>b ? ">" : "=="); return 0; } 중첩 삼항 연산자. Node.js let [a, b] = require("fs").readFileSync(0).toString().trim().split(" ").map(Number); let o = "=="; if (a < b) { o = "<"; } else if (a > b) { o = ">"; } console.log(o); PHP <?php fscanf(STDIN, "%d %d", $a, $b); $o = "=="; if ($a < $b) { $o = "<"; } else if ($a > $b) { $o = ">"; } echo $o; ?> Python3 a, b = map(int, input().split()) o = "==" if a<b: o = "<" elif a>b: o = ">" print(o) Ruby a, b = gets.chomp.split().map {|i| i.to_i} o = "==" if a<b o = "<" elsif a>b o = ">" end puts o
  • 새싹 (25083)

    2023-01-27 17:03:00 왜 얘만 언어제한? Bash echo " ,r'\"7 r\`-_ ,' ,/ \. \". L_r' \`~\/ | |" C #include <stdio.h> int main(void) { printf(" ,r'\"7\n"); printf("r`-_ ,' ,/\n"); printf(" \\. \". L_r'\n"); printf(" `~\\/\n"); printf(" |\n"); printf(" |\n"); } Node.js console.log(` ,r'"7 r\`-_ ,' ,/ \\. ". L_r' \`~\\/ | |`); PHP ,r'"7 r`-_ ,' ,/ \. ". L_r' `~\/ | | 언어제한이 걸려있어서 제출할 수는 없지만.. PHP는 어차피 복붙이니까.. Python3 print(""" ,r'"7 r`-_ ,' ,/ \. ". L_r' `~\/ | |""") Ruby puts " ,r'\"7 r`-_ ,' ,/ \\. \". L_r' `~\\/ | |"
  • 개 (10172)

    2023-01-27 16:47:00 몬생긴 개 Bash echo '|\_/| |q p| /} ( 0 )"""\ |"^"` | ||_/=\\__|' C #include <stdio.h> int main(void) { printf("|\\_/|\n"); printf("|q p| /}\n"); printf("( 0 )\"\"\"\\\n"); printf("|\"^\"` |\n"); printf("||_/=\\\\__|\n"); return 0; } Node.js console.log(` |\\_/| |q p| /} ( 0 )"""\\ |"^"\` | ||_/=\\\\__| `.trim()); PHP |\_/| |q p| /} ( 0 )"""\ |"^"` | ||_/=\\__| Python3 print(""" |\_/| |q p| /} ( 0 )"""\ |"^"` | ||_/=\\__| """.strip()) Ruby puts ' |\_/| |q p| /} ( 0 )"""\ |"^"` | ||_/=\\\__| '.strip
  • 고양이 (10171)

    2023-01-27 16:25:00 귀여운 고냥이. 역슬래시와 같이 특별한 기능으로 사용되는 문자를 출력할 때 주의해야 한다. Bash echo "\ /\\ ) ( ') ( / ) \(__)|" C #include <stdio.h> int main(void) { printf("\\ /\\\n"); printf(" ) ( ')\n"); printf("( / )\n"); printf(" \\(__)|\n"); return 0; } Node.js console.log(` \\ /\\ ) ( ') ( / ) \\(__)| `.trim()); PHP \ /\ ) ( ') ( / ) \(__)| Python3 print(""" \ /\\ ) ( ') ( / ) \(__)| """.strip()) Ruby puts " \\ /\\ ) ( ') ( / ) \\(__)| ".strip