백준

코딩 테스트

(Java) 백준 1991 - 트리 순회

문제는 간단했지만 이진트리 형식으로 구현하는 게 힘들었다. 입력값을 트리 형태로 바꾸기만 한다면 금방 풀리겠다고 생각했지만 트리 형태로 바꾸는게 생각이 나지 않았다. 그래서 검색을 해서 힌트를 얻었고 순회 메서드들은 금방 작성했다. 최종 코드 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { static int[][] tree; static StringBuilder sb; public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(..

코딩 테스트

(Java) 백준 14502 - 연구소

골드 4 문제인데 정답률이 높아서 도전한 문제이다. DFS와 BFS 문제 심화 버전? 같은 느낌이었고 2시간 정도 걸렸다. 처음에는 벽을 세우는 로직에 대해서 고민을 했었다. 2를 기준으로 세우는 알고리즘과 1을 기준으로 세우는 알고리즘을 한참을 생각해봤지만 떠오르지 않았다. 시간제한이 2초이고 M이 8이하로 입력되니 그냥 모든 벽을 세우는 완전 탐색으로 진행했다. 1. 완전 탐색으로 모든 벽을 세워본다. 2. BFS로 바이러스를 퍼트린다. 3. 남아있는 0을 센다. 이렇게 로직을 작성했고 코드로 구현하는데 한시간정도 걸렸던 것 같다. 나머지 한시간은 연속적으로 메서드를 호출하는 과정에서 배열의 값이 꼬이는 걸 해결하는데 썼다. 3개의 메서드가 연속적으로 호출되는데 이렇게 구현한적은 처음이라서 시간이 오..

코딩 테스트

(Java) 백준 2559 - 수열

슬라이딩 윈도우를 사용하는 문제이다. 기본 개념만 알고 있다면 쉽게 풀 수 있는 문제라서 슬라이딩 윈도우 개념 복습 차원에서 풀어보았다. 최종 코드 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); int n =..

코딩 테스트

(Java) 백준 2447 - 별 찍기 10

문제가 재밌어 보여서 선택했는데 하나도 재밌지 않았다. 규칙도 쉽게 보이고 재귀 호출로 n이 1일때 탈출하는것은 생각하기 쉬웠지만 막상 구현하려니 쉽지 않았다. 시간 제한이 1초라서 매번 println을 사용하면 100% 시간 초과가 난다고 생각해서 StringBuilder를 사용해서 찍어보려고 했는데 개행 문자 \n을 사용하면 별이 이상하게 찍혔다. 될듯 말듯 하다가 결국 검색을 해서 풀었는데 가장 이해하기 어려웠던 부분은 아래 부분이었다. if (!(i == 1 && j == 1)) { rec(x + i * (num / 3), y + j * (num / 3), num / 3); } x와 y의 좌표를 재귀때마다 수정해서 별을 찍는 로직인데 이해하는데 한참 걸렸다. 혼자서는 이렇게 생각하지는 못했을것 같..

로승리
'백준' 태그의 글 목록 (2 Page)