목록알고리즘/백준 (6)
나의 길

이 문제는 Queue의 개념과 java에서 Queue를 구현하고 있는 클래스들을 간단하게 다뤄보기 좋은 문제인 것 같습니다.(당연히 자신이 구현한 Queue로도 풀이가 가능합니다!) 예제 이해 앞서 말씀드린 것처럼 Queue를 구현하고 있는 클래스들(ArrayDeque, LinkedLIst, PriorityQueue) 중 LinkedList를 사용했습니다. 해당 클래스의 메소드들을 알고 있다면 간단하게 풀이가 가능합니다. 풀이할 때 집중한 것은 분기가 많으니 최대한 코드가 지저분해지지 않도록 노력했습니다! 구현 코드 import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.InputStreamReader;import java...

이 문제를 접하면서 시간 제한에 신경을 더 쓰게 되었고, 조금이나마 시간을 줄이는 방법을 알 수 있었습니다. 저의 시행착오와 풀이를 한 번 살펴보도록 하겠습니다. 예제 이해 문제를 접하면 sudo code를 약간이라도 적어보려고 노력하는데 처음 문제를 보며 든 생각은 if문이 많이 사용될 것 같다는 생각을 하고 일단 문제를 풀기만 하자라는 마음으로 풀이에 임했습니다. import java.io.BufferedReader;import java.io.InputStreamReader;public class Main { public static void main(String[] args) throws Exception{ BufferedReader br = new BufferedReader(n..

이 문제를 처음 접하면 저처럼 예제 출력이 왜 이렇게 출력되는지 몰라 조금 해맬 수 있다고 생각해 한 번 살펴보도록 하겠습니다. 예제 이해 해당 문제에서 가장 중요한 문구는 '임의의 수열이 주어졌을 때 스택을 이용해 그 수열을 만들 수 있는지 없는지, 있다면 어떤 순서로 연산을 수행해야 하는지' 라고 생각합니다. 예제 입력 1을 보면 8개의 숫자를 입력받고 4를 만드려면 push(1), push(2) , push(3) , push(4) 하고 pop()을 수행해야 합니다. 생각을 조금 더 해보자면 아래와 같이 예제가 출력된다는 것을 알 수 있습니다. + 1+ 2+ 3+ 4- 4- 3+ 5+ 6- 6+ 7+ 8- 8- 7- 5- 2- 1 -인 pop()을 한 숫자를 나열해보면 예제 출력 1..

이 문제는 StringBuilder의 reverse() 메소드와 많은 방법을 통해 구현할 수 있지만 저는 Stack을 활용해서 문제를 풀었습니다. (링크의 과정을 참고하여 Stack으로 풀이!) 구현 코드 import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.Stack;public class Main { public static void main(String[] args) throws Exception{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new String..

이 문제는 반복문을 배웠다면 접할 별찍기의 약간 심화 버전처럼 느꼈습니다.(피라미드 + 역 피라미드 별 찍기) 구현 코드 import java.io.BufferedReader;import java.io.InputStreamReader;public class Main { public static void main(String[] args) throws Exception{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLine()); for (int i = 1; i 0; i--){ for ..

문제를 구현하는 것은 간단하다고 생각했다. 먼저 세준이의 과목을 첫 번째 줄에 입력받고, 두 번째 줄에는 빈칸(" ")으로 구분된 각 과목의 점수를 입력받는다. 이후 세준이의 야매(?) 점수 계산법을 통해 {(점수 / 최댓값) * 100} 각 과목의 점수를 바꾸고 바뀐 점수를 통해 우리가 흔히 사용하는 (각 과목 점수의 합 / 과목 수) 평균 식을 적용하여 출력을 하면 된다. 그런데 여기서 조금 생각해 보아야 하는 문제가 있다. 바로 예제 출력값에서 볼 수 있는 소수점이다. 이 소수점을 보고 정수형 자료형이 아닌 실수형 자료형을 생각하고 문제를 풀어야겠다고 생각했다. 코드 import java.io.*; public class Main { public static void main(String[] arg..