본문 바로가기

Wook's 개척일기234

BufferedReader와 BufferedWriter 알고리즘 공부를 하다가 Scanner 함수보다 효율이 좋다고 하는 BufferedReader와 BufferedWriter에 대해서 알게되어서 글을 올려본다. BufferedReader란? 버퍼라는 공간을 이용해서 개행문자나 스페이스가 나타나기 전까지 버퍼에 담아뒀다가 한꺼번에 전송하는것이다. 따라서 전송하는 횟수가 적기때문에 효율적이고 빠르다. Scanner도 BufferedReader와 똑같이 버퍼를 이용해서 값을 입력 받는데 BufferedReader는 단순히 읽어드리기만 하기 때문에 입력속도가 더 빠르다. 하지만 Scanner는 문자열을 파싱하기 때문에 BufferedReader보다 속도가 느리다. BufferedReader 사용법 BufferedReader를 사용하려면 해당 클래스로 객체를 생성해.. 2021. 7. 22.
[백준 : 실버2] DFS와 BFS(1260번) : Java 이번문제는 그야말로 DFS와 BFS의 구현을 하는 내용이였다. 첨에 문제가 뭔소린지 이해를 못했지만 입력문을 자세히보니 무슨소린지 이해가 갔다 일단 문제부터 살펴보자. 문제 그래프를 DFS로 탐색한 결과와 BFS로 탐색한 결과를 출력하는 프로그램을 작성하시오. 단, 방문할 수 있는 정점이 여러 개인 경우에는 정점 번호가 작은 것을 먼저 방문하고, 더 이상 방문할 수 있는 점이 없는 경우 종료한다. 정점 번호는 1번부터 N번까지이다. 입력 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사이에 여러 개의 간선이 있을 수 있다. 입력으.. 2021. 7. 18.
[백준 : 실버3] ATM : 그리디 (Java) 이번 문제는 솔직히 너무 쉬웠다. 일단 문제부터 보자. 문제 인하은행에는 ATM이 1대밖에 없다. 지금 이 ATM앞에 N명의 사람들이 줄을 서있다. 사람은 1번부터 N번까지 번호가 매겨져 있으며, i번 사람이 돈을 인출하는데 걸리는 시간은 Pi분이다. 사람들이 줄을 서는 순서에 따라서, 돈을 인출하는데 필요한 시간의 합이 달라지게 된다. 예를 들어, 총 5명이 있고, P1 = 3, P2 = 1, P3 = 4, P4 = 3, P5 = 2 인 경우를 생각해보자. [1, 2, 3, 4, 5] 순서로 줄을 선다면, 1번 사람은 3분만에 돈을 뽑을 수 있다. 2번 사람은 1번 사람이 돈을 뽑을 때 까지 기다려야 하기 때문에, 3+1 = 4분이 걸리게 된다. 3번 사람은 1번, 2번 사람이 돈을 뽑을 때까지 기다려.. 2021. 7. 18.
[백준 : 브론즈1] 설탕배달 : DP(Java) 이번 문제는 약간의 힌트만을 보고 내가 직접 소스를 짜서 문제를 풀어냈다. 일단 문제부터 보자. 문제 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그램 봉지와 5킬로그램 봉지가 있다. 상근이는 귀찮기 때문에, 최대한 적은 봉지를 들고 가려고 한다. 예를 들어, 18킬로그램 설탕을 배달해야 할 때, 3킬로그램 봉지 6개를 가져가도 되지만, 5킬로그램 3개와 3킬로그램 1개를 배달하면, 더 적은 개수의 봉지를 배달할 수 있다. 상근이가 설탕을 정확하게 N킬로그램 배달해야 할 때, 봉지 몇 개를 가져가면 되는지 그 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N이 주어.. 2021. 7. 18.