"꾸준하고 완벽한 한 걸음"

2025/01/06 3

[Java] effectively final

Java를 사용하다 보면 effectively final라는 개념을 접하게 됩니다. 특히 람다 표현식이나 익명 클래스와 같은 구문을 작성할 때, 이 용어가 중요한 역할을 합니다.이번 글에서는 effectively final에 대해 알아보도록 하겠습니다.1. effectively final이란?effectively final은 Java에서 한 번 초기화된 후로 값이 변경되지 않는 변수를 의미합니다.쉽게 말해, final 키워드가 없어도 사실상 final처럼 동작하는 변수입니다.int number = 10; // 초기화Runnable task = () -> System.out.println(number); // 람다에서 number 사용 가능위 코드에서 number는 한 번 초기화된 이후 변경되지 않았기 때..

[백준 02294] 동전 2 [Java]

문제https://www.acmicpc.net/problem/2294풀이N가지 종류의 동전이 주어질 때, 동전의 합이 K가 되는 최소 개수를 구하는 문제다.N은 최대 100이므로, 모든 동전에 대해 K를 만들어보는 경우를 전부 계산해볼 수 있다.dp[i] : 현재까지 살펴본 동전들로 i원을 만들기 위한 최소 개수우선 K의 최대는 10,000이므로 dp를 10,001, dp[0] = 0으로 초기화하자.이제 입력받은 동전에 대해 최소 동전 개수를 갱신하면 된다.범위 coin ~ K에 대해 현재 동전의 액수를 뺀 기록( dp[i - coin] )에 현재 동전 더하는 수가 적은 경우로 갱신해주면 된다. 만약 dp[K]가 초기값인 10,001이라면 K를 만드는 경우의 수가 존재하지 않는 경우이므로 -1을 출력하자..

[백준 32978] 아 맞다 마늘 [Java]

문제https://www.acmicpc.net/problem/32978풀이입력받은 N개의 재료에 대해 언급되지 않은 재료를 찾는 문제다.우선 N개의 재료를 입력받아 집합에 넣어주자.다음으로 N - 1개의 재료를 입력받아 어떤 재료가 빠졌는지 확인하면 된다.입력받은 재료들을 집합에서 제거해주자.정확히 N개를 입력받고, N - 1개를 제거했으므로 집합의 첫 번째 요소를 출력하면 된다.소스코드보기