백준단계별로풀어보기

    [백준, BOJ 11653] 소인수분해 (java)

    출처-https://www.acmicpc.net/problem/11653 11653번: 소인수분해 첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다. www.acmicpc.net 내 생각 처음에는 소수를 구해야 한다고 생각했다. 그런데 따로 소수를 구해주지 않아도 된다. 2로 나눌 수 있을 때까지 나눠주고, 그다음 3을 나눠주면 4를 나눌 차례가 되었을 때 어차피 2로 나눌 수 있을 때까지 나눠 주었기 때문에 더 이상 나눌 수 없어 5로 넘어가게 된다. 이렇게 2부터 순서대로 나눠주면 따로 소수를 구할 필요 없이 소인수분해를 할 수 있다. import java.util.Scanner; public class Main { public static void main(String[] args..

    [백준, BOJ 4948] 베르트랑 공준 (java)

    출처-https://www.acmicpc.net/problem/4948 4948번: 베르트랑 공준 베르트랑 공준은 임의의 자연수 n에 대하여, n보다 크고, 2n보다 작거나 같은 소수는 적어도 하나 존재한다는 내용을 담고 있다. 이 명제는 조제프 베르트랑이 1845년에 추측했고, 파프누티 체비쇼 www.acmicpc.net 참고 소수를 찾는 방법은 'BOJ1978' 과 같은 방법을 사용했다. import java.util.*; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Scanner scan = new Scanner (System.in); while (true) { int n ..

    [백준, BOJ 1929] 소수 구하기 (java)

    출처-https://www.acmicpc.net/problem/1929 1929번: 소수 구하기 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. www.acmicpc.net 참고 소수를 찾는 방법은 'BOJ1978' 과 같은 방법을 사용했다. import java.util.*; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Scanner scan = new Scanner(System.in); int m = scan.nextInt(); int n = scan.nextInt..

    [백준, BOJ 2581] 소수(java)

    출처-https://www.acmicpc.net/problem/2581 2581번: 소수 M이상 N이하의 자연수 중 소수인 것을 모두 찾아 첫째 줄에 그 합을, 둘째 줄에 그 중 최솟값을 출력한다. 단, M이상 N이하의 자연수 중 소수가 없을 경우는 첫째 줄에 -1을 출력한다. www.acmicpc.net 참고 소수를 찾는 방법은 'BOJ1978' 과 같은 방법을 사용했다. import java.util.*; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Scanner scan = new Scanner (System.in); int m = scan.nextInt(); int n =..

    [백준, BOJ 1978] 소수 찾기 (java)

    출처-https://www.acmicpc.net/problem/1978 1978번: 소수 찾기 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다. www.acmicpc.net 내 생각 소수를 구하는 방법은 여러 가지가 있다. 1. 1부터 n-1까지의 수로 n을 나눠 보았을 때 나머지가 0인 수가 있다면 n은 소수가 아니다. 이 경우에는 O(n)의 시간이 걸린다. 2. 1부터 n/2까지의 수로 n을 나눠 보았을 때 나머지가 0인 수가 있다면 n은 소수가 아니다. 1부터 n/2까지의 수에서 나눴을 때 나머지가 0인 수가 나오지 않았다면 n/2 이상의 수로 나눴을 때도 나머지가 0인 수는 있을 수 없다. 이 경우에는 O(n/2)의 시간이..

    [백준, BOJ 1011] Fly to the Alpha Centauri (java)

    출처-https://www.acmicpc.net/problem/1011 1011번: Fly me to the Alpha Centauri 우현이는 어린 시절, 지구 외의 다른 행성에서도 인류들이 살아갈 수 있는 미래가 오리라 믿었다. 그리고 그가 지구라는 세상에 발을 내려 놓은 지 23년이 지난 지금, 세계 최연소 ASNA 우주 비행�� www.acmicpc.net 참고 https://st-lab.tistory.com/79 https://zorba91.tistory.com/116 import java.util.*; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Scanner scan..

    [백준, BOJ 2775] 부녀회장이 될테야 (java)

    출처-https://www.acmicpc.net/problem/2775 2775번: 부녀회장이 될테야 첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 정수 k, 두 번째 줄에 정수 n이 주어진다. (1

    [백준, BOJ 10250] ACM 호텔 (java)

    출처-https://www.acmicpc.net/problem/10250 10250번: ACM 호텔 프로그램은 표준 입력에서 입력 데이터를 받는다. 프로그램의 입력은 T 개의 테스트 데이터로 이루어져 있는데 T 는 입력의 맨 첫 줄에 주어진다. 각 테스트 데이터는 한 행으로서 H, W, N, 세 정수 www.acmicpc.net import java.util.*; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Scanner scan = new Scanner(System.in); int t = scan.nextInt(); int room[] = new int[t]; for (int ..

    [백준, BOJ 2869] 달팽이는 올라가고 싶다 (java)

    출처-https://www.acmicpc.net/problem/2869 2869번: 달팽이는 올라가고 싶다 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B = v$ $an-bn+b >= v$ $(a-b)n >= v-b$ $n >= (v-b)/(a-b)$ import java.util.*; public class Main { public static void m..

    [백준, BOJ 1193] 분수찾기 (java)

    출처-https://www.acmicpc.net/problem/1193 1193번: 분수찾기 첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다. www.acmicpc.net 내 생각 dp1에는 분자를, dp2에는 분모를 저장한다. dp1은 처음에는 1, 다음에는 1부터 2, 3부터 1, 1부터 4, 5부터 1, 1부터 6 ...과 같은 반복 형태를 보인다. dp2는 처음에는 1, 다음에는 3-dp1, 4-dp1, 5-dp1, 6-dp1, 7-dp1이다. 위와 같은 규칙으로 부터 구조를 조건문을 사용하여 구조를 잡았다. 우선 dp1[i]가 1이면(이전 반복에서 1로 끝났다면), dp1은 다시 1부터 n까지가 연속으로 저장된다. 반면 dp1[i]가 1이 아닌 다른 수(2, 4, 6 ...)로 끝났..