java

    [Java] Thread vs Runnable

    Thread와 Runnable 인터페이스 자바에서는 Thread와 Runnable을 이용하여 쓰레드를 컨트롤할 수 있다. Thread는 새로운 Thread를 생성하는 클래스이며, Runnable은 Thread나 Executor 등과 같은 실행자에 의해 실행될 수 있는 인터페이스이다. Runnable이 선호되는 이유 Thread 클래스가 java.lang.Thread 클래스만 다루기 때문에 더 쉬워보이지만 Runnable이 더 많이 사용되고 있다. 이유는 다음과 같다. 자바는 다중 상속을 지원하지 않는다. 따라서 Thread를 사용한다는 것은 다른 클래스를 상속할 수 없음을 의미하기도 한다. Runnable 인터페이스는 Thread 또는 Executors 등에 의해 실행될 수 있기 때문에 Runnable을..

    [백준] 17425 약수의 합2 (Java)

    ✉️문제 https://www.acmicpc.net/problem/17427 17427번: 약수의 합 2 두 자연수 A와 B가 있을 때, A = BC를 만족하는 자연수 C를 A의 약수라고 한다. 예를 들어, 2의 약수는 1, 2가 있고, 24의 약수는 1, 2, 3, 4, 6, 8, 12, 24가 있다. 자연수 A의 약수의 합은 A의 모든 약수를 더 www.acmicpc.net 📝 접근 1. 테스트 케이스가 여러개이므로 미리 배열에 값들을 저장해 놓아야 한다. // f(A)를 구하는 과정 for(int i = 1; i < SIZE; i++) { for(int j = i; j < SIZE; j = j + i) { arr[j] += i; } } // g(A) 구하기 for(int i = 1; i < SIZE..

    [백준] 17427 약수의 합 2

    ✉️문제 https://www.acmicpc.net/problem/17427 17427번: 약수의 합 2 두 자연수 A와 B가 있을 때, A = BC를 만족하는 자연수 C를 A의 약수라고 한다. 예를 들어, 2의 약수는 1, 2가 있고, 24의 약수는 1, 2, 3, 4, 6, 8, 12, 24가 있다. 자연수 A의 약수의 합은 A의 모든 약수를 더 www.acmicpc.net 📝 접근 10이하의 자연수 중에서 N의 배수를 몇 개인지 알아보자. (배수를 이용해서 약수를 구함) 1의 배수는 10 / 1 = 10개 2의 배수는 10 / 2 = 5개 (2, 4, 6, 8, 10) 3의 배수는 10 / 3 = 3개 (3, 6, 9) ... ... 10의 배수는 10 / 10 = 1개 g(n)의 값을 구하는 것이..

    [백준] 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..