-
[백준 - 2493번] 탑 - Java //Wello Horld //Algorithm/BOJ(Baekjoon Online Judge) 2020. 3. 17. 12:06
이번에는 BOJ의 2493번 문제 "탑" 을 풀어보도록 하자
입력으로 첫째 줄에 탑의 수를 나타내는 N이 주어지고, 그 다음 줄에 N개 만큼 탑들의 높이가 각각 순서대로 주어진다.
출력으로 각각의 탑들에서 발사한 레이저 신호를 수신한 탑들의 번호를 하나의 빈칸을 사이에 두고 출력하면 되는 문제이다.
성공한 코드는 다음과 같다.
import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); int N = Integer.parseInt(br.readLine()); Stack<tower> stack = new Stack<tower>(); StringTokenizer st = new StringTokenizer(br.readLine()); for(int i = 1; i <= N; i++){ long a = Long.parseLong(st.nextToken()); while(!stack.isEmpty()){ if(stack.peek().height >= a){ bw.write(stack.peek().position + " "); break; } stack.pop(); } if(stack.isEmpty()) bw.write("0 "); stack.push(new tower(a, i)); } bw.flush(); br.close(); bw.close(); } static class tower{ long height; int position; public tower(long height, int position){ this.height = height; this.position = position; } } }
문제 : https://www.acmicpc.net/problem/2493
혹시 코드에 이상한 부분이나 틀린 부분이 있던지, 이해가 안가는 부분이 있다면 댓글로 알려주세요
'Algorithm > BOJ(Baekjoon Online Judge)' 카테고리의 다른 글
[백준 - 17388번] 와글와글 숭고 - Java //Wello Horld // (0) 2020.03.30 [백준 - 15915번] 가위 바위 보 1002 - Java //Wello Horld // (0) 2020.03.30 [백준 - 2799번] 블라인드 - Java //Wello Horld // (0) 2020.03.17 [백준 - 16194번] 카드 구매하기2 - Java //Wello Horld // (0) 2020.03.17 [백준 - 3023번] 마술사 이민혁 - Java //Wello Horld // (0) 2020.03.12