목록분류 전체보기 (280)
빙응의 공부 블로그

📝풀이 문제를 이해하면 자료구조 문제이다. 앞을 해결하지 못하면 뒤를 못쓰는 FIFO 방식으로 Queue를 쓰거나 컬렉션을 구현하면 된다. 나는 백터를 썼다. import java.util.Vector; class Solution { public String solution(String[] cards1, String[] cards2, String[] goal) { Vector card1 = new Vector(); Vector card2 = new Vector(); // card1에 요소 추가 for(String card : cards1) card1.add(card); // card2에 요소 추가 for(String card : cards2) card2.add(card); // goal 확인 for(St..

📝풀이 배열 처리를 위한 JAVA String 메소드와 HashMap을 사용하면 쉽게 풀 수 있다. 들어온 배열을 String의 chatAt로 추출 후 HashMap에 저장하며 저장할 때 같은 key가 있다면 둘 중 더 작은 값(즉, 더 우선순위에 있는 키) import java.util.HashMap; class Solution { public int[] solution(String[] keymap, String[] targets) { HashMap key = new HashMap(); int[] answer = new int[targets.length]; for (int i = 0; i < keymap.length; i++) { for (int j = 0; j < keymap[i].length(); ..

📝풀이 문제에 대해 생각해봤는데, section에서 처음으로 나오는 수에 칠하고 m에 범위에 들어가는 section 값을 무시하면 된다. 범위에서 넘으면 다시 칠하고 칠한 수를 다음 비교 수로 넣으면 된다.. class Solution { public int solution(int n, int m, int[] section) { int answer = 0; int first = Integer.MIN_VALUE; //칠한 기준 위치를 표시하는 비교 수 for(int sec:section){ if(first+m
📝람다식(Lambda Expression)이란? Stream 연산들은 매개변수로 함수형 인터페이스를 받도록 되어있다. 그리고 람다식은 반환값으로 함수형 인터페이스를 반환하고 있다. Stream API를 사용하기 위해서는 람다식과 함수형 인터페이스에 대해 정확히 이해해야 한다. 람다식의 의미 람다식이란 함수를 하나의 식으로 표현한 것이다. 함수를 람다식으로 표현하면 메소드의 이름이 필요 없기 때문에, 람다식은 익명 함수 중에 하나이다. 익명 함수의 특징 다른 객체들에게 적용 가능한 연산을 모두 지원한다. 함수를 값으로 사용할 수도 있으며, 파라미터로 전달 및 변수에 대입 하기와 같은 연산도 가능하다. //기존 방식 public String hello() { return "Hello World!"; } //..
📝Stream API에 대한 이해 JAVA는 객체지향 언어(명령형 프로그래밍)이기 때문에 기본적으로 함수형 프로그래밍이 불가능하다. 하지만 JDK8부터 함수형 프로그래밍을 위한 Stream API, 람다식, 함수형 인터페이스 등을 지원하고 있다. Stream API 데이터를 추상화하고, 처리하는데 자주 사용되는 함수들을 정의 예를 들어보자 우리는 리스트에서 짝수 값을 찾아 제곱하여 출력하는 것을 만든다고 하자. 일반 코드 List numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); // 짝수만 필터링하여 제곱 값 출력 List result = new ArrayList(); for (int n : numbers) { if (n % 2 == 0) { resul..
Optional에 대해 공부하는 중 Stream과 연계해서 사용하는 것을 보았다. 궁금해! 📝함수형 프로그래밍에 대한 이해 먼저 Stream API를 이해하기 위해서는 함수형 프로그래밍에 대해 이해해야 한다. 프로그래밍 패러다임 프로그래밍 패러다임은 프로그래머에게 프로그래밍의 관점을 갖게 하고 코드를 어떻게 작성할 지 결정하는 역할을 한다. 패러다임은 크게 아래와 같이 구분한다. 명령형 프로그래밍: 무엇(What)을 할 것인지 나타내기 보다 어떻게(How)할 건지를 설명하는 방식 절차지향 프로그래밍: 수행되어야 할 순차적인 처리 과정을 포함하는 방식 객체지향 프로그래밍: 객체들의 집합으로 프로그램의 상호작용을 표현 선언형 프로그래밍: 어떻게(How)를 나타내기보다 무엇(What)을 할 건지를 설명하는 방..