본문 바로가기

전체 글223

[알고리즘 문제풀이] 백준 14502 연구소 (JAVA코드) https://www.acmicpc.net/problem/14502 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크 www.acmicpc.net /* 1. 벽 3개 건설 (dfs) 2. 바이러스 퍼트리기 3. 안전 영역 개수 파악 4. 모든 경우의 수에서 제일 큰 안전영역의 개수 반환 시간복잡도: 3개벽짓기(8^2^3) * 탐색(8^2) == 8^8 */ import java.io.*; import java.util.*; public class 연구소 { public static int n,m, result; public static int[][] m.. 2022. 3. 17.
[Java] 자바 스트림(stream) 사용법 3 - 최종 연산 forEach() 스트림 내 요소를 매개변수 내용을 실행. void forEach(Comsumer 2022. 3. 16.
[Java] 자바 스트림(stream) 사용법 2 - 스트림의 중간연산, Optional 스트림 자르기 - skip(), limit() skip(n)은 n만큼 요소를 건너뛰는 것이고, limit(n)은 n만큼 요소의 개수를 제한한다. IntStream intStream = IntStream.rangeClosed(1,10); // 1~10의 요소를 가진 스트림 intStream.skip(3).limit(5).forEach(System.out::print); // 1,2,3건너뛰고 4~8까지 5개 출력 스트림 요소 걸러내기 -filter(), distinct() distinct()는 스트림에서 중복된 요소들을 제거하고, filter()는 주어진 조건에 맞지 않는 요소를 걸러낸다. IntStream int Stream = IntStream.of(1,2,2,3,3,3,4,5,6); intStream.. 2022. 3. 16.
[Java] 자바 스트림(stream) 사용법 1 - 특징과 생성 스트림이란 스트림은 자바 8에 추가된 데이터 소스를 추상화하고, 데이터를 다루는데 자주 사용되는 메서드들을 정의해놓은 기술이다. 스트림을 사용하면 코드가 간결해지고 이해하기 쉽고, 재사용성이 높아진다. // 서로 다른 타입의 데이터 소스 String[] strArr = {"arr", "ddd", "ccc" }; List strList = Arrays.asList(strArr); //정렬 출력 기존 방식 Arrays.sort(strArr); for(String str: strArr){ System.out.println(str); } Collcections.sort(strList); for(String str: strList){ System.out.println(str); } // 스트림 방식 Stream 2022. 3. 16.
[Java] 람다식(Lambda expression)과 함수형 인터페이스(Functional Interface) 람다식이란 람다식은 메서드를 하나의 '식(expression)'으로 표현한 것이다. 메서드를 람다식으로 표현하면 메서드의 이름과 반환타입이 없어지므로, '익명함수(anonymous function)'이라고도 한다. int[] arr = new int[5]; Arrays.setAll(arr ,(i) -> (int)(Math.random()*5) +1); 위의 문장에서, () -> (int)(Math.random()*5) +1); 부분이 람다식이다. 이러한 람다식을 통해 보다 간결하고 이해하기 쉬워졌고, 메서드를 변수처럼 다루는 것이 가능해진다. 람다식 작성하기 반환타입 메서드이름 (매개변수 선언){ 문장들 } // 람다 (매개변수 선언) -> { 문장들 } 반환 타입과 메서드이름을 없애고, 매개변수가 수행.. 2022. 3. 16.
[알고리즘 문제풀이] 백준 2613 숫자구슬 (JAVA코드) https://www.acmicpc.net/problem/2613 2613번: 숫자구슬 첫째 줄에 구슬의 개수 N과 그룹의 수 M이 주어진다. 둘째 줄에는 각 구슬이 적혀진 숫자가 왼쪽부터 차례로 주어진다. N은 300 이하의 자연수, M은 N이하의 자연수이며, 구슬에 적혀진 숫자는 100 www.acmicpc.net import java.util.*; import java.io.*; /** * 1. 이분탐색으로 최대값의 크기를 지정 * * 2. 그에 따른 그룹으로 나누기(각 그룹별 개수 체크) * * 3. 최대값이 최소가 될 때 출력 */ public class 숫자구슬 { public static int n,m, result; public static int[] groupList, beads; pub.. 2022. 3. 16.