본문 바로가기

Java/백준

(106)
[JAVA] 백준 14425 문자열 집합 14425번: 문자열 집합 (acmicpc.net) 14425번: 문자열 집합 첫째 줄에 문자열의 개수 N과 M (1 ≤ N ≤ 10,000, 1 ≤ M ≤ 10,000)이 주어진다. 다음 N개의 줄에는 집합 S에 포함되어 있는 문자열들이 주어진다. 다음 M개의 줄에는 검사해야 하는 문자열들이 주어 www.acmicpc.net 풀이 과정 - n개를 HashSet에 넣고 , m개를 입력받으면서 HashSet에 존재하는지 확인 HashSet [Java] 자바 HashSet 사용법 & 예제 총정리 (tistory.com) [Java] 자바 HashSet 사용법 & 예제 총정리 HashSet이란? HashSet은 Set 인터페이스의 구현 클래스입니다. 그렇기에 Set의 성질을 그대로 상속받습니다. Set은 객체..
[JAVA] 백준 17103 골드바흐 파티션 17103번: 골드바흐 파티션 (acmicpc.net) 17103번: 골드바흐 파티션 첫째 줄에 테스트 케이스의 개수 T (1 ≤ T ≤ 100)가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 정수 N은 짝수이고, 2 < N ≤ 1,000,000을 만족한다. www.acmicpc.net 풀이 과정 골드바흐의 추측 - 2보다 큰 짝수는 두 소수의 합으로 나타낼 수 있다 골드바흐 파티션 - 짝수 N을 두 소수의 합으로 나타내는 표현 - 각 테스트 마다 모든 소수 배열을 생성할 필요 없음 - 입력 조건 중 가장 큰 숫자(10000000) 의 소수 조합을 생성 한 후 이용 - n/2번씩 반복문을 돌면서 해당 숫자가 소수면서 n에서 소수를 뺀 값이 소수이면 count를 1씩 증가 (두 소수의 순서만 다..
[JAVA] 백준 4948 베르트랑 공준 https://www.acmicpc.net/problem/4948 4948번: 베르트랑 공준 베르트랑 공준은 임의의 자연수 n에 대하여, n보다 크고, 2n보다 작거나 같은 소수는 적어도 하나 존재한다는 내용을 담고 있다. 이 명제는 조제프 베르트랑이 1845년에 추측했고, 파프누티 체비쇼 www.acmicpc.net 풀이 과정 - 베르트랑 공준에 따르면 2이상의 자연수 n에 대하여 n
[JAVA] 백준 1929 소수 구하기 1929번: 소수 구하기 (acmicpc.net) 1929번: 소수 구하기 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. www.acmicpc.net 풀이 과정 -에라토스테네스의 체 이용 에타토스테네스의 체 [알고리즘] 에라토스테네스의 체 알고리즘(C언어) (tistory.com) [알고리즘] 에라토스테네스의 체 알고리즘(C언어) '에라토스테네스의 체' 란? '에라토스테네스의 체'란, 2부터 시작하는 양의 정수들 중에서 소수(prime number)인 것을 찾아내는 알고리즘 중 하나입니다. 이 알고리즘은 2부터 시작하여, 그 다음 소수 bakjoon-coding.tistory.com - 2부..
[JAVA] 백준 4134 다음 소수 4134번: 다음 소수 (acmicpc.net) 4134번: 다음 소수 첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 정수 n이 주어진다. www.acmicpc.net 풀이 과정 - 소수 여부를 검사할 수에 대해서 그 값의 제곱근을 기준으로 그 곱은 대칭적으로 곱이 일어나므로 제곱근 이하의 작은 값까지만 검사를 하면 나머지는 검사를 할 필요가 없음 - 검사할 데이터를 제곱근 개 이하로 줄일 수 있는 방법 2024.01.28 - [Java/자료구조] - 2-1 배열 2-1 배열 자료구조 - 데이터 단위와 데이터 자체 사이의 물리적 또는 논리적인 관계 1. 배열 다루기 1) 배열(Array) - 같은 자료형의 변수인 구성 요소(component)가 모인 것 ex) ..
[JAVA] 백준 2485 가로수 2485번: 가로수 (acmicpc.net) 2485번: 가로수 첫째 줄에는 이미 심어져 있는 가로수의 수를 나타내는 하나의 정수 N이 주어진다(3 ≤ N ≤ 100,000). 둘째 줄부터 N개의 줄에는 각 줄마다 심어져 있는 가로수의 위치가 양의 정수로 주어지며, 가 www.acmicpc.net 풀이 과정 - 같은 간격으로 가로수를 최소로 심기 위해서는 현재 주어진 가로수 간격의 최대 공약수 간격으로 가로수를 심어야 함 1) 가로수들 사이의 간격을 구함 2)거리를 일정하게 만들어야 하기 때문에 거리들의 최대 공약수를 구함 3) (간격/최대공약수) -1 해준 뒤 모두 더함 정답 import java.util.Scanner; import java.util.Arrays; public class Main { ..
[JAVA] 백준 1735 분수합 1735번: 분수 합 (acmicpc.net) 1735번: 분수 합 첫째 줄과 둘째 줄에, 각 분수의 분자와 분모를 뜻하는 두 개의 자연수가 순서대로 주어진다. 입력되는 네 자연수는 모두 30,000 이하이다. www.acmicpc.net 풀이 과정 - 일반적인 분수에 대해서 분자와 분모의 최대 공약수를 구한 후 각각 나눠 주면 기약 분수가 됨 정답 import java.util.Scanner; public class Main { //최대 공약수 public static int gcd(int a, int b) { if(b==0) { return a; } else { return gcd(b,a%b); } } //최소 공배수 public static int lcm(int a ,int b) { int gcd ..
[JAVA] 백준 13241 최소공배수 13241번: 최소공배수 (acmicpc.net) 13241번: 최소공배수 정수 B에 0보다 큰 정수인 N을 곱해 정수 A를 만들 수 있다면, A는 B의 배수이다. 예: 10은 5의 배수이다 (5*2 = 10) 10은 10의 배수이다(10*1 = 10) 6은 1의 배수이다(1*6 = 6) 20은 1, 2, 4,5,10,20의 배수이다. 다 www.acmicpc.net 풀이 과정 - 유클리드 호제법으로 풀이 유클리드 호제법 유클리드 호제법 (개념 이해하기) | 모듈로 연산 | Khan Academy - 두 개의 자연수가 주어졌을 때 최대공약수(GCD)를 구하는 알고리즘 - 재귀적인 방법을 활용하여 동작 - 두 수를 서로 나누고 나머지를 계산하여 나머지가 0이 될 때까지 반복 - 두 정수 a 와 b의 최대 ..