From e68cda57016b1810f3c960408c05557e07d606d6 Mon Sep 17 00:00:00 2001 From: Myeongseon Choi Date: Thu, 29 Aug 2024 16:22:27 +0900 Subject: [PATCH] =?UTF-8?q?Update=20solution=20for=20=EC=8A=A4=ED=83=9D=20?= =?UTF-8?q?w/=20id=2019446155=20Time:=204ms=20MemUsage:=2013148KB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- baekjoon/스택/solution_19446155.rs | 60 ++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 baekjoon/스택/solution_19446155.rs diff --git a/baekjoon/스택/solution_19446155.rs b/baekjoon/스택/solution_19446155.rs new file mode 100644 index 0000000..0a262ae --- /dev/null +++ b/baekjoon/스택/solution_19446155.rs @@ -0,0 +1,60 @@ +use std::io::{self, BufRead, Write, BufWriter}; + +fn main(){ + let mut stack : Vec = Vec::new(); + + let stdin = io::stdin(); + let mut num_command = String::new(); + stdin.read_line(&mut num_command).expect("Failed to read line"); + let num_command = num_command.trim().parse::().expect("Not an integer"); + + let lock_in = stdin.lock(); + + let stdout = io::stdout(); + let lock_out = stdout.lock(); + let mut buff = BufWriter::new(lock_out); + + for (idx, line) in lock_in.lines().enumerate(){ + if idx == num_command{ + break; + } + let inputs = line.unwrap(); + let mut inputs = inputs.trim().split(" "); + let command = inputs.next().expect("Not enough input"); + + match command { + "push" => { + let n = inputs.next().expect("Not enough input") + .parse::().expect("Not an integer"); + stack.push(n); + }, + "pop" => { + match stack.pop(){ + Some(n) => buff.write_fmt(format_args!("{}\n", n)), + None => buff.write_fmt(format_args!("{}\n", -1)), + }; + }, + "size" => { + buff.write_fmt(format_args!("{}\n", stack.len())); + }, + "top" => { + match stack.pop(){ + Some(n) => { + buff.write_fmt(format_args!("{}\n", n)); + stack.push(n); + }, + None => { + buff.write_fmt(format_args!("{}\n", -1)); + }, + }; + } + "empty" => { + match stack.is_empty(){ + true => buff.write_fmt(format_args!("{}\n", 1)), + false => buff.write_fmt(format_args!("{}\n", 0)), + }; + } + _ => continue, + } + } +}