자바

    [백준] 1037 약수 (Java)

    ✉️문제 https://www.acmicpc.net/problem/1037 1037번: 약수 첫째 줄에 N의 진짜 약수의 개수가 주어진다. 이 개수는 50보다 작거나 같은 자연수이다. 둘째 줄에는 N의 진짜 약수가 주어진다. 1,000,000보다 작거나 같고, 2보다 크거나 같은 자연수이고, 중복되 www.acmicpc.net 📝 접근 약수의 개수가 1과 자기자신을 빼고 주어진다. 따라서 주어진 약수 중에서 가장 작은 값과 가장 큰 값을 곱하면 된다. 🗝 문제풀이 package divisor; import java.util.Arrays; import java.util.Scanner; public class B1037R { public static void main(String[] args) { Scann..

    [백준] 4375 1로만 이루어진 n의 배수(Java)

    ✉️문제 https://www.acmicpc.net/problem/4375 4375번: 1 2와 5로 나누어 떨어지지 않는 정수 n(1 ≤ n ≤ 10000)가 주어졌을 때, 1로만 이루어진 n의 배수를 찾는 프로그램을 작성하시오. www.acmicpc.net 📝 접근 1로만 이루어진 n의 배수 중 가장 작은 수의 자리수를 출력하면 된다. 이 때 1로만 이루어진 배수가 자료형의 범위를 넘어갈 수 있으므로, 혹은 더 효율적인 계싼을 위해서 나머지 연산을 이용한다. num = (num * 10) + 1; num = num % n; 🗝 문제풀이 import java.util.Scanner; public class B4375RRR { public static void main(String[] args) { Sc..

    [백준] 10430 나머지 (Java)

    ✉️문제 https://www.acmicpc.net/problem/10430 10430번: 나머지 첫째 줄에 A, B, C가 순서대로 주어진다. (2 ≤ A, B, C ≤ 10000) www.acmicpc.net 📝 접근 컴퓨터의 정수는 저장할 수 있는 범위가 지정되어 있기 때문에, 답을 M으로 나눈 나머지를 출력하는 문제가 등장한다. 이 때 다음과 같은 성질을 이용해서 int또는 long과 같은 자료형의 범위로 제한해주어야 한다. (A + B) mod M = (( A mod M ) + ( B mod M )) mod M (A x B) mod M = (( A mod M) x ( B mod M )) mod M (A - B ) mod M = (( A mod M) - (B mod M) mod M 🗝 문제풀이 위..

    [Java] Optional의 개념과 사용

    [Java] Optional의 개념과 사용

    Optional의 등장 프로그래밍을 하다보면 NullPointException을 종종 보게 된다. null을 리턴하면 안되는데 null을 리턴하는 경우 생기는 예외인데, 이를 처리하는 방법은 크게 2가지가 있다. 예외를 던지는 방법 public Something getSomething() { if(this.something == null) throw new IllegalStateException(); return something; } 예외를 던질 때 자바는 stack trace에 대한 정보를 생성하고 보여주는데, 이는 리소스를 사용하기 때문에 로직 처리에 예외 처리를 하지 않는 것이 좋다. 따라서 클라이언트 코드가 null을 체크하는 방법을 주로 사용한다. 클라이언트 코드가 null을 체크하는 방법 P..

    [Java] Supplier 함수 인터페이스와 Lazy Evaluation

    [Java] Supplier 함수 인터페이스와 Lazy Evaluation

    Supplier T타입의 값을 제공하는 함수 인터페이스이다. T타입의 값을 제공 받고 리턴도 하지 않아 이 인터페이스가 왜 필요한지 의문이 들 수 있는데 주로 Lazy Evaluation에 사용이 된다. Lazy Evaluation 불필요한 연산을 피하기 위해 연산을 지연시켜놓았다가 필요할 때 연산하는 방법. 예시를 통해 Lazy Evaluation에 대해 알아보자. 1. printState에서는 valid가 true이면 value + word, false이면 wrong world를 출력한다. public void printState(boolean valid, String value) { if(valid) { System.out.println(value + " world"); } else { System..