본문 바로가기

자바77

[백준] JAVA 자바 : 에디터 (1406번) 한 줄 짜리 에디터를 만드는 문제이다. 처음에는 StringBuilder의 substring()으로 했다가… 시간이 너무 오래 걸리는 걸 깨닫고 스택 2개를 이용해서 만들었다. 그런데 이렇게 해도 이상하게 시간 초과로 계속 실패해서… 진짜 Scanner이랑 StringBuilder을 사용해서 최대한 효율적으로 만들어 봤지만 합격이 되지 않았다. 그래서 처음으로 BufferedReader와 BufferedWriter을 공부하게 되었는데… 와 진짜 확실히 빠른 듯? package BJoon; import java.io.*; import java.util.Stack; public class Editor_1406 { public static void main(String[] args) throws IOExcep.. 2024. 1. 20.
[백준] JAVA 자바 : 스택 수열 (1874번) 스택 수열을 만드는 문제다. 처음에는 문제를 이해하기 되게 어려웠는데… 나도 다른 분들 블로그를 보고 겨우 이해했다. 무슨 내용이냐면, 첫 줄에 n을 입력한 후 나는 이제 수열을 이룰 숫자 num을 n번 입력받을 거다., num을 입력하면, 스택에는 1부터 차례대로 1, 2, …, num까지 입력이 되어야 한다. 그리고 맨 스택의 맨 위의 요소를 pop하면 내가 입력한 num이 도출되어야 한다. 즉 내가 4를 입력하면 스택에는 1, 2, 3, 4가 저장된 후 4가 pop되어 출력되고 스택에는 1, 2, 3이 남게 된다. 이후 내가 3을 입력하면 스택에 추가로 저장할 필요가 없으니 바로 pop되어 3이 출력되고 스택에는 1, 2가 남게 된다. 이후 내가 6을 입력하면 스택에는 1, 2가 입력되어 있고, 나.. 2024. 1. 18.
[백준] JAVA 자바 : 괄호 검사 (9012번) 괄호가 짝이 맞는지 안 맞는지 검사하는 코드이다. 사실 이건 굉장히 간단한 게… 스택을 이용해서 ‘(‘가 들어오면 모두 스택에 넣고 ‘(‘가 들어오면 스택에 ‘(‘가 있는지만 검사하면 된다. import java.util.Scanner; import java.util.Stack; public class CheckBracket_9012 { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int T = scan.nextInt(); scan.nextLine(); Stack stack = new Stack(); boolean ans; // VPS인지 아닌지를 가르쳐 준다. String str; for (int i=0; i 2024. 1. 18.
[백준] JAVA 자바 : 단어 뒤집기 (9093번) 주어진 단어를 줄 단위로 읽은 후, 단어 별로 뒤집어 출력하는 문제이다. 사실 문자열 배열에서 바로 처리할 수도 있겠지만… 나는 앞에서 배운 스택을 활용해서 풀었다. import BJoon.Stack_10828; import java.util.*; public class ReverseWord_9093 { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int T = scan.nextInt(); // 테스트 케이스의 개수 Stack stack = new Stack(T); // 내가 구현한 스택! StringBuilder sb = new StringBuilder(); String str; String[] str_l.. 2024. 1. 18.
[백준] JAVA 자바 : 스택 (10828번) 스택을 구현하는 문제다. 스택이 LIFO 방식의 자료구조라는 것만 유념한다면 어느 정도 고민을 한 후 구현할 수 있다. package BJoon; import java.util.*; class Stack { private static int[] list; // 스택을 구현할 배열 private static int size = 0; // 스택에 담긴 요소의 수 public Stack(int N) { list = new int[N]; } public int size() { return size; } public void push(int e) { list[size] = e; // 배열의 맨 마지막에 요소를 담음 size++; // 요소의 수를 올려줌 } public int pop() { if (size == .. 2024. 1. 18.
반응형