분류 전체보기 111

스트림 Stream

Stream 스트림 스트림은 자바 8부터 추가되었으며, 람다식을 이용해 컬랙션의 요소를 하나씩 함수적 프로그래밍으로 처리할 수 있도록 해주는 기능입니다. ArrayList의 값을 모두 합산하려고 한다면 반복문을 사용해야 합니다. List arrayList = Arrays.asList(1,2,3,4,5); Integer sum = 0; for(Integer a : arrayList){ sum += a; } 스트림을 사용하면 아래와 같이 값을 합산할 수 있습니다. int sum1 = arrayList.stream().mapToInt(a->a).sum(); 스트림의 특징 ① 람다식을 이용해 요소를 처리합니다. 람다식을 이용해 기능을 구현하거나, 메소드를 호출하여 컬랙션의 요소를 하나씩 처리할 수 있습니다. ②..

JAVA/JAVA 2021.11.07

리트코드 leetCode 743.Network Delay Time

문제 : https://leetcode.com/problems/network-delay-time/ Network Delay Time - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 풀이 : 다익스트라 알고리즘 사용 2021.09.19 - [알고리즘/알고리즘] - 다익스트라 알고리즘 Dijkstra's algorithm 구현 JAVA class Solution { public int networkDelayTime(int[][] times, int n, int k..

프로그래머스 가장 먼 노드

문제 : https://programmers.co.kr/learn/courses/30/lessons/49189 풀이 : ① BFS를 이용해 1부터 특정 노드까지의 경로를 탐색 후 거리를 저장 ② 탐색한 거리 중 가장 먼 거리의 갯수를 세어 반환 2021.09.19 - [알고리즘/알고리즘] - 너비 우선 탐색 Breath-first Search BFS 구현JAVA import java.util.*; class Solution { public int solution(int n, int[][] edges) { // 방문여부를 저장할 배열 boolean[] isVisited = new boolean[n+1]; // 지점별 1과의 거리를 저장할 배열 int[] distance = new int[n+1]; //ed..

Comparator와 Comparable

Comparable collecion 클래스에서 구성 요소를 정렬하는 기준을 정의하는 인터페이스입니다. Collection의 요소가 사용자 정의 클래스인 경우에는 Comparable 인터페이스를 상속받아 구현되어야 합니다. 상속 받은 뒤에는 정렬기준을 정의하는 compareTo 메소드를 구현해야 합니다.(오버라이드) 메소드 리턴 설명 compareTo(T o) int o와 객체가 가진 값이 같으면 0을 리턴 o보다 객체가 가진 값이 크면 양수를 리턴 o보다 객체가 가진 값이 작으면 음수를 리턴 public class Student implements Comparable{ int id ; int score; String name; public Student(int id, int score, String n..

JAVA/JAVA 2021.10.29

Lambda Expressions 람다식

Lambda Expressions 람다식은 인터페이스에 정의된 객체를 인터페이스를 호출(사용)하는 시점에 사용자가 정의하여 사용할 수 있는 기능을 제공하는 기능입니다. 미리 정의된 메소드, 클래스를 사용하는 것이 아니라 호출 시점에 재정의하여 사용하는 함수적 프로그래밍을 지원하는 기능입니다. (타입 매개변수) -> {실행문} (int a) -> { a = a+1 } 람다식을 구현하기 위해서는 먼저 인터페이스에 추상메소드 1개를 선언해야 합니다. public interface Calculation { int calculate(int a, int b); } 추상메소드가 선언한 다음 인터페이스를 호출하는 시점에 아래 코드처럼 Override하여 기능을 정의할 수 있습니다. Calculation normal =..

JAVA/JAVA 2021.10.28

리트코드 leetCode binary-tree-right-side-view

문제 : https://leetcode.com/problems/binary-tree-right-side-view/ Binary Tree Right Side View - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 풀이 : 모든 레벨에서 가장 오른쪽에 있는 노드만을 찾아 저장해야 하는 문제. ① 재귀로 구현 > 오른쪽 노드를 탐색하는 부분을 먼저 수행하면서 값을 저장하도록 위치를 조정함. - 오른쪽 노드 탐색 - 왼쪽 노드를 탐색 ② 더 이상 자식 노드가 없으면..

Collection 컬렉션

Collection Interface 자바의 인터페이스를 이용해 구현된 것으로 데이터를 저장하는 자료구조를 정의하는 프레임워크입니다. Collection 인터페이스의 종류 종류 특징 구현 클래스 List 순서가 있는 자료구조 Vector, ArrayList, LinkedList, Stack Set 순서가 없으며 중복값을 허용하지 않는 자료구조 HashSet, TreeSet Map key와 value로 이루어진 자료구조로 key는 중복값을 허용하지 않음 HashMap, TreeMap Queue 선입선출의 자료구조 Queue Deque 양방향 선입선출 자료구조 Deque Collection 인터페이스의 기본 Method method return 설명 size() int collection 객체의 길이(담긴 ..

JAVA/JAVA 2021.10.25

leetcode 리트코드 797 All Paths From Source To Target

문제 : (1) All Paths From Source to Target - LeetCode All Paths From Source to Target - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 풀이 : DFS 구현 JAVA import java.util.LinkedList; import java.util.List; import java.util.Queue; class Solution { public List allPathsSourceTarget(int[]..

리트코드 LeetCode find-center-of-star-graph

문제 https://leetcode.com/problems/find-center-of-star-graph/ Find Center of Star Graph - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 풀이 ① edges는 노드의 갯수-1 개 만큼만 들어오기 때문에 모든 노드가 1개의 노드와 연결되어 있는... 중앙 집중형 네트워크 그래프이다. ② 즉 모든 노드과 연결되는 노드를 구하면 된다. 구현 JAVA [그래프를 연결리스트로 구현] import java...

프로그래머스 여행경로

문제 : 프로그래머스 여행경로 https://programmers.co.kr/learn/courses/30/lessons/43164?language=java 코딩테스트 연습 - 여행경로 [["ICN", "SFO"], ["ICN", "ATL"], ["SFO", "ATL"], ["ATL", "ICN"], ["ATL","SFO"]] ["ICN", "ATL", "ICN", "SFO", "ATL", "SFO"] programmers.co.kr 풀이 ① DFS로 모든 경로 목록 구하기 ② 알파벳 순서로 정렬 후 가장 앞의 것을 출력 import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.Sta..