알고리즘 - Baekjoon/Silver

    [백준] 11723번 : 집합 Silver5(실버5) - JAVA[자바]

    [Silver V] 집합 - 11723 문제 링크 성능 요약 메모리: 324628 KB, 시간: 976 ms 분류 비트마스킹, 구현 제출 일자 2023년 11월 17일 11:06:47 문제 설명 비어있는 공집합 S가 주어졌을 때, 아래 연산을 수행하는 프로그램을 작성하시오. add x: S에 x를 추가한다. (1 ≤ x ≤ 20) S에 x가 이미 있는 경우에는 연산을 무시한다. remove x: S에서 x를 제거한다. (1 ≤ x ≤ 20) S에 x가 없는 경우에는 연산을 무시한다. check x: S에 x가 있으면 1을, 없으면 0을 출력한다. (1 ≤ x ≤ 20) toggle x: S에 x가 있으면 x를 제거하고, 없으면 x를 추가한다. (1 ≤ x ≤ 20) all: S를 {1, 2, ..., 2..

    [백준] 16948번 : 데스 나이트 Silver1(실버1) - JAVA[자바]

    [Silver I] 데스 나이트 - 16948 문제 링크 성능 요약 메모리: 13680 KB, 시간: 128 ms 분류 너비 우선 탐색, 그래프 이론, 그래프 탐색 제출 일자 2023년 11월 17일 09:25:11 문제 설명 게임을 좋아하는 큐브러버는 체스에서 사용할 새로운 말 "데스 나이트"를 만들었다. 데스 나이트가 있는 곳이 (r, c)라면, (r-2, c-1), (r-2, c+1), (r, c-2), (r, c+2), (r+2, c-1), (r+2, c+1)로 이동할 수 있다. 크기가 N×N인 체스판과 두 칸 (r1, c1), (r2, c2)가 주어진다. 데스 나이트가 (r1, c1)에서 (r2, c2)로 이동하는 최소 이동 횟수를 구해보자. 체스판의 행과 열은 0번부터 시작한다. 데스 나이트는..

    [백준] 1629번 : 곱셈 Silver1(실버1) - JAVA[자바]

    [Silver I] 곱셈 - 1629 문제 링크 성능 요약 메모리: 12856 KB, 시간: 112 ms 분류 분할 정복을 이용한 거듭제곱, 수학 제출 일자 2023년 11월 16일 10:58:00 문제 설명 자연수 A를 B번 곱한 수를 알고 싶다. 단 구하려는 수가 매우 커질 수 있으므로 이를 C로 나눈 나머지를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 A, B, C가 빈 칸을 사이에 두고 순서대로 주어진다. A, B, C는 모두 2,147,483,647 이하의 자연수이다. 출력 첫째 줄에 A를 B번 곱한 수를 C로 나눈 나머지를 출력한다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamRea..

    [백준] 11051번 : 이항 계수2 Silver2(실버2) - JAVA[자바]

    [Silver II] 이항 계수 2 - 11051 문제 링크 성능 요약 메모리: 12904 KB, 시간: 108 ms 분류 조합론, 다이나믹 프로그래밍, 수학 제출 일자 2023년 11월 8일 10:19:14 문제 설명 자연수 N과 정수 K가 주어졌을 때 이항 계수 NK를 10,007로 나눈 나머지를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 1,000, 0 ≤ K ≤ N) 출력 (NK)를 10,007로 나눈 나머지를 출력한다. import java.util.Scanner; class Main{ public static final int DIV = 10007; public static void main(String[] args) { Scanner sc = new ..

    [백준] 1747번 : 소수&팰린드롬 Silver1(실버1) - JAVA[자바]

    [Silver I] 소수&팰린드롬 - 1747 문제 링크 성능 요약 메모리: 19612 KB, 시간: 176 ms 분류 브루트포스 알고리즘, 수학, 정수론, 소수 판정, 에라토스테네스의 체 제출 일자 2023년 11월 1일 11:23:13 문제 설명 어떤 수와 그 수의 숫자 순서를 뒤집은 수가 일치하는 수를 팰린드롬이라 부른다. 예를 들어 79,197과 324,423 등이 팰린드롬 수이다. 어떤 수 N (1 ≤ N ≤ 1,000,000)이 주어졌을 때, N보다 크거나 같고, 소수이면서 팰린드롬인 수 중에서, 가장 작은 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N이 주어진다. 출력 첫째 줄에 조건을 만족하는 수를 출력한다. import java.util.Scanner; class Main{ pu..

    [백준] 12026번 : BOJ 거리 Silver1(실버1) - JAVA[자바]

    [Silver I] BOJ 거리 - 12026 문제 링크 성능 요약 메모리: 16036 KB, 시간: 172 ms 분류 다이나믹 프로그래밍 제출 일자 2023년 10월 26일 13:30:32 문제 설명 BOJ 거리는 보도블록 N개가 일렬로 놓여진 형태의 도로이다. 도로의 보도블록은 1번부터 N번까지 번호가 매겨져 있다. 스타트의 집은 1번에 있고, 링크의 집은 N번에 있다. 스타트는 링크를 만나기 위해서 점프해가려고 한다. BOJ거리의 각 보도블록에는 B, O, J 중에 하나가 쓰여 있다. 1번은 반드시 B이다. 스타트는 점프를 통해서 다른 보도블록으로 이동할 수 있다. 이때, 항상 번호가 증가하는 방향으로 점프를 해야 한다. 만약, 스타트가 현재 있는 곳이 i번이라면, i+1번부터 N번까지로 점프를 할..

    [백준] 16922번 : 로마 숫자 만들기 Silver2(실버2) - JAVA[자바]

    [Silver III] 로마 숫자 만들기 - 16922 문제 링크 성능 요약 메모리: 17016 KB, 시간: 156 ms 분류 백트래킹, 브루트포스 알고리즘, 조합론, 구현, 수학 제출 일자 2023년 10월 26일 11:37:00 문제 설명 로마 숫자에서는 수를 나타내기 위해서 I, V, X, L을 사용한다. 각 문자는 1, 5, 10, 50을 의미하고, 이 문제에서 다른 문자는 사용하지 않는다. 하나 또는 그 이상의 문자를 이용해서 수를 나타낼 수 있다. 문자열이 나타내는 값은, 각 문자가 의미하는 수를 모두 합한 값이다. 예를 들어, XXXV는 35, IXI는 12를 의미한다. 실제 로마 숫자에서는 문자의 순서가 중요하지만, 이 문제에서는 순서는 신경쓰지 않는다. 예를 들어, 실제 로마 숫자에서 ..

    [백준] 13706번 : 제곱근 Silver4(실버 4) - JAVA[자바]

    [Silver IV] 제곱근 - 13706 문제 링크 성능 요약 메모리: 14636 KB, 시간: 144 ms 분류 임의 정밀도 / 큰 수 연산, 이분 탐색, 수학 제출 일자 2023년 10월 26일 10:47:15 문제 설명 정수 N이 주어졌을 때, N의 제곱근을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 양의 정수 N이 주어진다. 정수 N의 제곱근은 항상 정수이며, N의 길이는 800자리를 넘지 않는다. 출력 첫째 줄에 정수 N의 제곱근을 출력한다. import java.io.*; import java.math.BigInteger; class Main { public static void main(String args[]) throws Exception { BufferedReader br = ne..