목록프로그래밍 언어 (16)
가희의자기개발블로그
ㄴㅓ무 쉬워서 보니 초등용 문제였따....! import java.util.Scanner; public class GreedyAlgorithm03 { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int T = scan.nextInt(); int A =0; int B = 0; int C = 0; if(T%10 != 0){ System.out.println(-1); }else{ A += T / 300; T -= A*300; B += T/60; T -= B*60; C += T/10; System.out.println(A+" "+B+" "+C); } } } www.acmicpc.net/problem/10162 10..
백준 문제를 풀다가 입력방식때문에 시간초과에러가 발생해서 원인도 모르고 며칠을 고민했었다. 그 원인은 Scanner의 상대적으로 느린 입력처리 때문이였는데, 그 이유를 알아보자. 이 두 클래스는 모두 입력을 받기위한 클래스라는 점에서는 동일하다. 하지만, 사용방법이나 속도 면에서 차이점이 존재한다. BufferedReader는 InputStreamReader에 버퍼링 기능이 추가된 기능이라고 한다. 이게 뭔소리인가? InputStreamReader의 경우, 문자열을 Character단위로 불러들인다. 한글자씩 문자열을 불러들이기 때문에 굉장히 비효율적이기 때문에 이를 보완하고자 BufferedReader 기능이 추가된것이다. BufferedReader는 사용자가 요청할 때마다 데이터를 읽어 오는 것이 아..
www.acmicpc.net/problem/2839 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net import java.util.Scanner; public class GreedyAlgorithm01 { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int input = scan.nextInt(); int count = 0; while(true){ if(input %5 ==0){ count += input/5; break;..
요즘 프랑스어를 공부할 시간이 없어서 최대한 document들을 불어로 찾아서 보려고 노력중이다. Closure에 대해 공부하던 중 Méthodes magiques 라는 단어가 나와서.. 당황했다.. 찾아보니 php에서 매직 메서드(방법?) 그리고 매직 상수라는 개념을 제공하는것 같다. 1. Magic Methodes (매직 메서드) 란? 이 매직 메소드들은 php에서 특수한 기능을 위해 미리 정의해 놓은 메소드이다. 이러한 매직 메소드는 메소드 이름과 매개변수, 반환 타입, 호출의 타이밍만이 정해져 있으며, 그 내용은 사용자가 직접 작성하여 사용할 수 있다. PHP에서 모든 매직 메소드의 이름은 두 개의 언더스코어(__)로 시작한다. 2. Magic Methodes 종류 __get (), __set (..
1. 개념 Closure 클래스는 익명함수를 나타내기 위해 사용된다. 익명함수는 해당 타입의 객체들을 생성해낸다. Closure 클래스는 여러 메소드들을 가지고 있다. 이 메소드들은 익명함수가 생성된 후에, 그것을 보충적으로 컨트롤하는 역할을 한다. 또한 이 클래스는 아래 적혀진 메소드들 외에, __invoke메서드도 가지고 있다. Closure { /* Methods */ private __construct ( ) public static bind ( Closure $closure , object $newthis [, mixed $newscope = "static" ] ) : Closure|false public bindTo ( object $newthis [, mixed $newscope = "sta..
백준을 풀다가 다익스트라 알고리즘이 나왔다. 분명히 학부때 배운 내용인데 오랜만에 하려니 기억이 잘 나지 않아서 책을 뒤져 봤다. 해당 알고리즘은 최단 경로를 구할 때 많이 사용한다. 가중치가 없는 그래프에서 최단 경로를 찾는 방법은 너비 우선 검색으로 구현하면 되지만, 가중치가 있는 경우에는 BFS만 가지고는 문제를 해결할 수 없다. 모서리 또는 정점에 가중치가 부여된 그래프에서 두 정점 사이의 최단 경로를 찾을 때는 다익스트라 알고리즘을 이용하면 된다. 이 알고리즘에서는 어떤 시작점 S가 주어졌을 때, 그 정점에서 시작하여 다른 모든 정점으로 가는 최단 경로를 찾을 수 있기 때문에, 결과적으로 어떤 최종 목적지 t로 가는 최단 경로를 구할 수 있다. 기본적인 개념은 프림 알고리즘과 매우 비슷하다. 각..
직접 키보드를 통하여 입력하는 데이터는 대개 임시 자료인 경우가 많다. 중요한 자료는 대부분 데이터베이스에 저장되어 있거나 파일 시스템에 저장된다. FileInputStream과 FileOutputStream은 바이트 단위로 파일을 통한 입출력을 처리한다. 1.FileInputStream FileInputStream 클래스는 InputStream 클래스를 상속받은 후손 클래스로 하드 디스크상에 존재하는 파일로부터 바이트 단위의 입력을 받는 클래스이다. 이 클래스는 출발 지점과 도착 지점을 연결하는 통로, 즉 스트림을 생성하는 클래스이다. 생성자의 인자로는 File 객체를 주거나 파일의 이름을 직접 String 형태로 줄 수 있다. 일반적으로 파일의 이름을 String 형태로 주는 경우가 많은데 파일이 존..
https://www.acmicpc.net/problem/1946 1946번: 신입 사원 첫째 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 20)가 주어진다. 각 테스트 케이스의 첫째 줄에 지원자의 숫자 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개 줄에는 각각의 지원자의 서류심사 성�� www.acmicpc.net import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.Comparator; public class GreedyAlgorithm02 { public static void main(Strin..