https://www.acmicpc.net/problem/10828
10828๋ฒ: ์คํ
์ฒซ์งธ ์ค์ ์ฃผ์ด์ง๋ ๋ช ๋ น์ ์ N (1 ≤ N ≤ 10,000)์ด ์ฃผ์ด์ง๋ค. ๋์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์๋ ๋ช ๋ น์ด ํ๋์ฉ ์ฃผ์ด์ง๋ค. ์ฃผ์ด์ง๋ ์ ์๋ 1๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ , 100,000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ๋ค. ๋ฌธ์ ์ ๋์์์ง
www.acmicpc.net
๋จ์ ์คํ ๊ตฌํ ๋ฌธ์ ๋ผ ๊ฐ๋จํ ์ค ์์๋๋ฐ...
์๊พธ ์๊ฐ์ด๊ณผ / ๋ฐํ์์๋ฌ๊ฐ ๋ด๋ค
<์ฒ์์ ๋ด๊ฐ ๊ตฌํํ๋ ์ฝ๋>
import java.util.Stack;
public class bj_10828 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
Stack<Integer> stack = new Stack<>();
for(int i=0; i<N; i++) {
String od = sc.next();
if(od.contains("push")) {
int X = sc.nextInt();
stack.push(X); //stack์ X๊ฐ push
}else if(od.equals("pop")) {
System.out.println(stack.isEmpty()?-1:stack.pop()); //stack์ด ๋น์ด์์ผ๋ฉด -1์ถ๋ ฅ, ์๋๋ฉด popํ๊ณ ์ถ๋ ฅ
}else if(od.equals("size")) {
System.out.println(stack.size());
}else if(od.equals("empty")) {
System.out.println(stack.empty());
}else if(od.equals("top")) {
System.out.println(stack.isEmpty()?-1:stack.peek()); //stack์ด ๋น์ด์์ผ๋ฉด -1์ถ๋ ฅ, ์๋๋ฉด ์๋จ๊ฐ ์ถ๋ ฅ
}
}
}
}
์ดํด๋ฆฝ์ค์์๋ ์ ๋๋ก ๋์๊ฐ์ง๋ง ์ ์ถํ๋๊น ์๊ฐ์ด๊ณผ๊ฐ ๋ด๋ค
๊ทธ๋์ Scanner๋ฅผ BufferedReader๋ก ์์ ํ๊ณ ๋ค์ ์ ์ถํ๋ ๋ฐํ์์๋ฌ
์ฒซ๋ฒ์งธ if๋ฌธ์์ br.readLine()์ผ๋ก ์ฝ๊ธฐ๋ง ํ๊ณ ๊ณต๋ฐฑ์ฒ๋ฆฌ๊ฐ ์๋๊ฒ ์์ธ์ด์๋ ๊ฒ ๊ฐ๋ค.
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.Stack;
public class Main {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
Stack<Integer> stack = new Stack<Integer>();
int N = Integer.parseInt(br.readLine());
for(int i=0; i<N; i++) {
String[] od = br.readLine().split(" ");
switch(od[0]){
case "push":
stack.push(Integer.parseInt(od[1]));
break;
case "pop":
if(stack.empty()){
bw.write("-1" + "\n");
}else{
bw.write(stack.pop() + "\n");
}
break;
case "size":
bw.write(stack.size() + "\n");
break;
case "empty":
if(stack.empty()){
bw.write("1"+"\n");
}else{
bw.write("0"+"\n");
}
break;
case "top":
if(stack.empty()){
bw.write("-1" + "\n");
}else{
bw.write(stack.peek() + "\n");
}
break;
}
}
bw.flush();
bw.close();
}
}
switch๋ฌธ์ด ๋ ๊น๋ํด๋ณด์ฌ์ ์์ ํ๋ค.
๊ทธ๋ฆฌ๊ณ System.out.print ๋์ BufferedWriter๋ก ์์
๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ์ ๋ํ ๊ณ ๋ฏผ์ ํด๋ด์ผ ํ ๊ฒ ๊ฐ๋ค.
'Algorithm > BOJ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Bronze V/JAVA] 10951 A+B-4 (EOF) (0) | 2024.10.16 |
---|---|
[Bronze IV/JAVA] 11720 ์ซ์์ ํฉ (0) | 2024.10.15 |
[Bronze IV/JAVA] 2480 ์ฃผ์ฌ์ ์ธ๊ฐ (0) | 2024.10.10 |
[Bronze IV/JAVA] 15552 ๋น ๋ฅธ A+B (0) | 2024.10.09 |
[Bronze III/JAVA] 10818 ์ต์, ์ต๋ (0) | 2024.08.19 |