본문 바로가기

백준5

[백준] 2263 트리의 순회 난이도: 골드 3유형: 트리/ 분할 정복https://www.acmicpc.net/problem/2263문제N개의 정점을 갖는 이진 트리의 정점에 1 부터 n까지의 번호가 중복없이 매겨져있다. 이와 같은 이진 트리의 인오더와 포스트 오더가 주어졌을때, 프리 오더를 구하는 프로그램을 작성하시오입력첫째줄에 1출력첫째 줄에 프리오더를 출력한다.문제 풀이Root 의 순회 순서에 따라 종류가 나뉜다.Preorder : Root 가 먼저 나와서 preorder root- left- rightInorder : left - root - rightPostorder: left - right - root각각의 순회 순서마다 얻을 수 있는 정보가 다르다.참조 : https://loosie.tistory.com/345구상Pos.. 2024. 7. 4.
백준 2606 바이러스 접근 방식 1 (시작노드)을 통해 탐색할 수 있는 모든 node 의 개수를 센다. Dfs 재귀의 방법으로 풀었다. visited = [False] * (number_of_computers +1) graph = [linked_list 형태의 graph] def dfs(vertex, graph, visited) : if visited[vertex] == False: visited[vertex] = True for node in visited[graph]: # 여러개의 인접 노드가 있으므로 dfs(node, graph, visited) 1차시기 어이 없게 틀렸다. 왜 틀렸냐 물으시면, graph 를 간선의 길이 만큼 생성해버렸다. 당연히 computer +1 만큼 생성해야 모든 컴퓨터의 인접 노드를 저장할 수.. 2024. 2. 6.
백준 1436: 영화감독 숌 백준 1436: 영화감독 숌 분석 브루트 포스 문제이다. ‘666’ 이 연속될 경우, 문제 666은 종말을 나타내는 수라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타워즈를 만들 때, 스타워즈 1, 스타워즈 2, 스타워즈 3, 스타워즈 4, 스타워즈 5, 스타워즈 6과 같이 이름을 지었고, 피터 잭슨은 반지의 제왕을 만들 때, 반지의 제왕 1, 반지의 제왕 2, 반지의 제왕 3과 같이 영화 제목을 지었다. 하지만 숌은 자신이 조지 루카스와 피터 잭슨을 뛰어넘는다는 것을 보여주기 위해서 영화 제목을 좀 다르게 만들기로 했다. 종말의 수란 어떤 수에 6이 적어도 3개 이상 연속으로 들어가는 수.. 2024. 1. 24.
자바 입출력 정리 InputStreamReader BufferReader PrintWriter 기존에 알고 있었던 입출력 방식으로는 메모리 초과가 나서, 새로운 입출력 방식을 배우게 되었다. Scanner 와 BufferReader 의 차이는 무엇인가? 먼저, BufferReader 란 버퍼를 사용하여 입력을 하는 객체이다. 버퍼를 사용하지 않는 입력은, 키보드의 입력이 키를 누르는 즉시 바로 프로그램에 전달된다. 반면 버퍼를 사용하는 입력은, 키보드의 입력이 있을 때마다 한 문자씩 버퍼로 전송한다. 버퍼가 가득 차거나 혹은 개행 문자가 나타나면 버퍼의 내용을 한 번에 프로그램에 전달한다. 키보드로 데이터를 입력 받을때마다, 데이터 입출력, 그리고 하드디스크에 쓰기 작업에 모두 시간이 소요되기 때문에 데이터 량이 많을 경우 시간 소요가 크다. 그래서 반드시 buffer 를 거쳐서 작업을 하게 된다.. 2024. 1. 18.