본문 바로가기

컴퓨터 공학/백준75

[백준] JAVA 자바 : 단어 뒤집기 2 (17413번) 앞에서 만들었던 단어 뒤집기의 심화 버전이다. 사실 앞에서 만들었던 단어 뒤집기는 스택만 쓰면 공백만 잘 처리해주면 쉽게 구현할 수 있었다. 이번 경우는 을 사용하는 주석이 추가돼서 저 주석은 그대로 출력해줘야 한다. 그래서… 이번에는 큐를 사용해야 할 듯! import java.io.*; import java.util.Stack; import java.util.Queue; import java.util.LinkedList; public class ReverseWord2_17413 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(Sys.. 2024. 1. 20.
[백준] JAVA 자바 : 덱 (10866번) 덱을 구현하는 문제이다. 사실 덱은 큐의 상위 호환 버전이라… 앞에서 구현했던 큐에서 앞뒤에서 모두 뺄 수 있게만 수정해주면 된다. 그래서 요소의 개수를 나타내는 변수 pot만 잘 이용한다면 큰 어려움 없이 구현할 수 있을 듯? import java.io.*; class Deque { static int[] list; static int n; static int pot = 0; // 덱에 담긴 요소의 개수 public Deque(int N) { this.n = N; this.list = new int[N]; } public void push_front(int e) { if (pot == n) { // 배열이 꽉 찼을 경우 늘려주는 과정 int[] tmp_list = new int[2*n]; for (in.. 2024. 1. 20.
[백준] JAVA 자바 : 요세푸스 문제 (1158번) 요세푸스 문제를 푸는 알고리즘을 만드는 문제이다. 처음에는 문제를 이해하는 게 되게 어려웠다. 아니 T가 3이면 계속 3번째 사람만 출력되는 거 아닌가?? 그런데 그런 게 아니라… 시작하는 사람은 제거되는 사람의 인덱스에서 시작하는 거였다. 그러니까 처음에는 3번째 사람이 빠지면, 그 다음 사람은 3+3인 6번째 사람이 빠지는 구조! 이 문제를 코딩하는 데에도 상당히 고민을 많이 했다. 큐를 2개를 써야 하나…? 그런데 큐를 2개를 쓰면 양쪽 큐에 요소가 T-1개 남은 시점부터는 원하는 방향으로 요소를 꺼낼 수가 없게 돼서… 그런데 굳이 큐를 2개를 사용하지 않고, 큐를 하나만 사용해도 쉽게 해결할 수 있었다… 큐의 앞 요소를 빼서 다른 큐에 넣는 게 아니라 큐 자기 자신의 맨 뒤에 갖다 넣으면 되는 거.. 2024. 1. 20.
[백준] JAVA 자바 : 큐 (10845번) 큐를 구현하는 문제이다. 사실 큐는 FIFO를 구현하면 되므로… 이미 한 번 스택을 구현해 본 경험만 잘 응용하면 쉽게 구현할 수 있다. 문제는 구현하는 방법이 아니라… 어떻게 시간을 줄이느냐임…ㅋㅋ 직전에 에디터를 코딩하면서 배운 BufferedReader이랑 BufferedWriter을 이용하니까 확실히 시간이 빨라진 듯?! 그러니까 이제 Scanner-StringBuilder 사용은 지양하고… BufferedReader-BufferedWriter을 애용하자! import java.io.*; class Queue { static int[] list; static int n; static int pot = 0; // 큐에 담긴 요소의 개수 public Queue(int N) { n = N; list =.. 2024. 1. 20.
[백준] 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.
반응형