백트래킹

    [백준] 14391번 : 종이 조각 Gold3(골드3) - JAVA[자바]

    [Gold III] 종이 조각 - 14391문제 링크성능 요약메모리: 17160 KB, 시간: 88 ms분류비트마스킹, 브루트포스 알고리즘제출 일자2024년 6월 19일 15:48:05문제 설명영선이는 숫자가 쓰여 있는 직사각형 종이를 가지고 있다. 종이는 1×1 크기의 정사각형 칸으로 나누어져 있고, 숫자는 각 칸에 하나씩 쓰여 있다. 행은 위에서부터 아래까지 번호가 매겨져 있고, 열은 왼쪽부터 오른쪽까지 번호가 매겨져 있다.영선이는 직사각형을 겹치지 않는 조각으로 자르려고 한다. 각 조각은 크기가 세로나 가로 크기가 1인 직사각형 모양이다. 길이가 N인 조각은 N자리 수로 나타낼 수 있다. 가로 조각은 왼쪽부터 오른쪽까지 수를 이어 붙인 것이고, 세로 조각은 위에서부터 아래까지 수를 이어붙인 것이다...

    [백준] 15683번 : 감시 Gold4(골드4) - JAVA[자바]

    [Gold IV] 감시 - 15683 문제 링크 성능 요약 메모리: 67488 KB, 시간: 216 ms 분류 백트래킹, 브루트포스 알고리즘, 구현, 시뮬레이션 제출 일자 2024년 2월 12일 15:28:05 문제 설명 스타트링크의 사무실은 1×1크기의 정사각형으로 나누어져 있는 N×M 크기의 직사각형으로 나타낼 수 있다. 사무실에는 총 K개의 CCTV가 설치되어져 있는데, CCTV는 5가지 종류가 있다. 각 CCTV가 감시할 수 있는 방법은 다음과 같다. 1번 2번 3번 4번 5번 1번 CCTV는 한 쪽 방향만 감시할 수 있다. 2번과 3번은 두 방향을 감시할 수 있는데, 2번은 감시하는 방향이 서로 반대방향이어야 하고, 3번은 직각 방향이어야 한다. 4번은 세 방향, 5번은 네 방향을 감시할 수 있..

    [백준] 1174번 : 줄어드는 수 Gold5(골드5) - JAVA[자바]

    [Gold V] 줄어드는 수 - 1174 문제 링크 성능 요약 메모리: 12972 KB, 시간: 88 ms 분류 백트래킹, 브루트포스 알고리즘 제출 일자 2024년 2월 3일 19:22:01 문제 설명 음이 아닌 정수를 십진법으로 표기했을 때, 왼쪽에서부터 자리수가 감소할 때, 그 수를 줄어드는 수라고 한다. 예를 들어, 321와 950은 줄어드는 수이고, 322와 958은 아니다. N번째로 작은 줄어드는 수를 출력하는 프로그램을 작성하시오. 만약 그러한 수가 없을 때는 -1을 출력한다. 가장 작은 줄어드는 수가 1번째 작은 줄어드는 수이다. 입력 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수이다. 출력 첫째 줄에 N번째 작은 줄어드는 수를 출력한다. 접근 방법 1. N이 줄어드는 수라면..

    [백준] 17825번 : 주사위 윷놀이 골드2(Gold2) - JAVA[자바]

    [Gold II] 주사위 윷놀이 - 17825 문제 링크 성능 요약 메모리: 15280 KB, 시간: 164 ms 분류 백트래킹, 브루트포스 알고리즘, 구현, 시뮬레이션 제출 일자 2024년 2월 2일 10:31:18 문제 설명 주사위 윷놀이는 다음과 같은 게임판에서 하는 게임이다. 처음에는 시작 칸에 말 4개가 있다. 말은 게임판에 그려진 화살표의 방향대로만 이동할 수 있다. 말이 파란색 칸에서 이동을 시작하면 파란색 화살표를 타야 하고, 이동하는 도중이거나 파란색이 아닌 칸에서 이동을 시작하면 빨간색 화살표를 타야 한다. 말이 도착 칸으로 이동하면 주사위에 나온 수와 관계 없이 이동을 마친다. 게임은 10개의 턴으로 이루어진다. 매 턴마다 1부터 5까지 한 면에 하나씩 적혀있는 5면체 주사위를 굴리고..

    [백준] 15684번 : 사다리 조작 Gold3(골드3) - JAVA[자바]

    [Gold III] 사다리 조작 - 15684 문제 링크 성능 요약 메모리: 14204 KB, 시간: 312 ms 분류 백트래킹, 브루트포스 알고리즘, 구현 제출 일자 2024년 1월 31일 15:41:53 문제 설명 사다리 게임은 N개의 세로선과 M개의 가로선으로 이루어져 있다. 인접한 세로선 사이에는 가로선을 놓을 수 있는데, 각각의 세로선마다 가로선을 놓을 수 있는 위치의 개수는 H이고, 모든 세로선이 같은 위치를 갖는다. 아래 그림은 N = 5, H = 6 인 경우의 그림이고, 가로선은 없다. 초록선은 세로선을 나타내고, 초록선과 점선이 교차하는 점은 가로선을 놓을 수 있는 점이다. 가로선은 인접한 두 세로선을 연결해야 한다. 단, 두 가로선이 연속하거나 서로 접하면 안 된다. 또, 가로선은 점선..

    [백준] 13023번 : ABCDE Gold5(골드5) - JAVA[자바]

    [Gold V] ABCDE - 13023 문제 링크 성능 요약 메모리: 19592 KB, 시간: 212 ms 분류 백트래킹, 깊이 우선 탐색, 그래프 이론, 그래프 탐색 제출 일자 2024년 1월 29일 17:16:40 문제 설명 BOJ 알고리즘 캠프에는 총 N명이 참가하고 있다. 사람들은 0번부터 N-1번으로 번호가 매겨져 있고, 일부 사람들은 친구이다. 오늘은 다음과 같은 친구 관계를 가진 사람 A, B, C, D, E가 존재하는지 구해보려고 한다. A는 B와 친구다. B는 C와 친구다. C는 D와 친구다. D는 E와 친구다. 위와 같은 친구 관계가 존재하는지 안하는지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 사람의 수 N (5 ≤ N ≤ 2000)과 친구 관계의 수 M (1 ≤ M ≤ 2000..

    [백준] 18429번 : 근손실 Silver3(실버3) - JAVA[자바]

    [Silver III] 근손실 - 18429 문제 링크 성능 요약 메모리: 12428 KB, 시간: 108 ms 분류 백트래킹, 브루트포스 알고리즘 제출 일자 2024년 1월 15일 21:54:53 문제 설명 웨이트 트레이닝을 좋아하는 어떤 대학원생은, 현재 3대 운동 중량 500의 괴력을 소유하고 있다. 다만, 하루가 지날 때마다 중량이 K만큼 감소한다. 예를 들어 K=4일 때, 3일이 지나면 중량이 488로 감소하게 된다. 따라서 운동을 하지 않고, 가만히 있다면 매일매일 중량이 감소할 뿐이다. 다행히도 이 대학원생은 N개의 서로 다른 운동 키트를 가지고 있다. 이 대학원생은 하루에 1개씩의 키트를 사용하며, 매일 어떤 키트를 사용할 지는 마음대로 결정할 수 있다. 운동 키트들은 각각의 중량 증가량을..

    [백준] 1987번 : 알파벳 Gold4(골드4) - JAVA[자바]

    [Gold IV] 알파벳 - 1987 문제 링크 성능 요약 메모리: 296464 KB, 시간: 1988 ms 분류 백트래킹, 깊이 우선 탐색, 그래프 이론, 그래프 탐색 제출 일자 2024년 1월 14일 01:08:01 문제 설명 세로 R칸, 가로 C칸으로 된 표 모양의 보드가 있다. 보드의 각 칸에는 대문자 알파벳이 하나씩 적혀 있고, 좌측 상단 칸 (1행 1열) 에는 말이 놓여 있다. 말은 상하좌우로 인접한 네 칸 중의 한 칸으로 이동할 수 있는데, 새로 이동한 칸에 적혀 있는 알파벳은 지금까지 지나온 모든 칸에 적혀 있는 알파벳과는 달라야 한다. 즉, 같은 알파벳이 적힌 칸을 두 번 지날 수 없다. 좌측 상단에서 시작해서, 말이 최대한 몇 칸을 지날 수 있는지를 구하는 프로그램을 작성하시오. 말이 ..