전체
백준 17406 배열 돌리기4(구현)
https://www.acmicpc.net/problem/17406 17406번: 배열 돌리기 4 크기가 N×M 크기인 배열 A가 있을때, 배열 A의 값은 각 행에 있는 모든 수의 합 중 최솟값을 의미한다. 배열 A가 아래와 같은 경우 1행의 합은 6, 2행의 합은 4, 3행의 합은 15이다. 따라서, 배열 A의 www.acmicpc.net 1. 배열에 대해서 permutation을 돌리는 기법이 자바에서 구현하기 많이 힘들었다. ==> row에 대한 인덱스들만 따로 모은 1차원 배열을 permutation 돌리는 기법으로 하는게 정석인 것 같음 2. rotation 시키는 방법 2-1. (in java) list에 넣고 Collections.rotate() 2-1-1 (in python) queue.r..
Java8
1. 람다 표현식(lambda expresssion) : 함수형 프로그래밍(익명함수) Q. 함수랑 메소드랑 다른가? 함수 : 특정 작업을 수행하는 독립적인 존재(알고리즘 할 때 따로 구현하는 function() 생각하면 될 듯) 메소드(클래스함수) : 클래스, 구조체, 열거형에 포함되어 있는 함수, 해당 클래스에 대한 객체가 생성되어 사용 가능 ★ 자바에서는 클래스의 선언과 동시에 객체를 생성하므로, 단 하나의 객체만을 생성할 수 있는 클래스를 익명 클래스라 함 따라서 자바에서 람다 표현식은 익명 클래스와 같다고 할 수 있다 new Object() { int min(int x, int y) { return x x x < y ? x : y; // 추상 메소드의..
Java 순열과 조합
package practice; import java.util.Arrays; import java.util.Scanner; public class PermutationTest1 { static int n; static int r; static char[] numbers; static boolean[] visited; static int res; static char[] data = {'a','b','c','d','e'}; //nPn //nPr public static void main(String[] args) { Scanner sc = new Scanner(System.in); n = sc.nextInt(); r = sc.nextInt(); res = 0; numbers= new char[r]; vis..
Java 코딩테스트를 위한 문법
static 정적 변수의 속도에 대한 고찰 static 변수를 만들어서 참조하면 지역변수(파라미터)보다 시간이 많이 소요. 시간에 예민한 문제들은 int 변수 1개라도 파라미터로 선언해주자 Scanner sc = new Scanner(System.in); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)) sc.nextByte()// byte 형 입력 및 리턴 sc.nextShort()// short 형 입력 및 리턴 sc.nextInt()// int 형 입력 및 리턴 sc.nextLong()// long 형 입력 및 리턴 sc.nextFloat()// float 형 입력 및 리턴 sc.nextDouble()// double ..
Java 직렬화
books.dat 이라는 파일을 읽어들일때 직렬화를 해서 객체에 할당을 하려고 한다. class Person implements java.io.Serializable{ String transient name; int age; public Person(String name, int age) { this.name = name; this.age = age; } } 객체를 만들 때 보통 "이지원", 18이라고 하게되면 알맞게 저장이 되지만 위처럼 name에 대해서 직렬화를 시키지 않겠다라고 선언해버리면 name에 대한 부분이 저장이 되지 않는다. File.separator File.separator는 프로그램이 실행 중인 OS에 해당하는 구분자를 리턴한다. File file = new File("/tmp/" +..
Java 예외 처리
package exception; public class MainExceptionHanding { public static void main(String[] args) { int[] arr = { 1, 2, 3, 4, 5 }; int x = 10; for (int i = 0; i