알고리즘 문제풀이/백준 4

[백준/C/Brute Force] 2798 - 블랙잭

블랙잭 카드 게임. n개의 숫자들 중에서 3개를 골라 m을 초과하지 않는 합을 구하기. input n: 숫자의 총 개수 m: 합이 초과하면 안되는 수 output 3개의 합. m을 초과하면 안된다 #include int main(){ int n = 0; int m, i, j, k; int sum = 0; int answer = 0; scanf("%d %d", &n, &m); int arr[n]; for(i = 0; i < n; i++){ scanf("%d", &arr[i]); } for(i = 0; i < n; i++){ for(j = 1; j < n && j != i; j++){ for(k = 2; k < n && k != i && k != j; k++){ sum = arr[i] + arr[j] + a..

[백준/Python/그래프, 벨만-포드] 11657 - 타임머신

1. 문제 링크 https://www.acmicpc.net/problem/11657 11657번: 타임머신 첫째 줄에 도시의 개수 N (1 ≤ N ≤ 500), 버스 노선의 개수 M (1 ≤ M ≤ 6,000)이 주어진다. 둘째 줄부터 M개의 줄에는 버스 노선의 정보 A, B, C (1 ≤ A, B ≤ N, -10,000 ≤ C ≤ 10,000)가 주어진다. www.acmicpc.net 2. 문제 해석 input: 도시의 개수 N 버스 노선의 개수 M M개의 줄에 각 버스 노선의 정보 A (시작도시), B (도착도시), C (이동시간) C == 0, 순간이동 C < 0, 타임머신으로 시간 되돌아감 output: 1번 도시에서 출발해서 무한히 과거로 갈 수 있으면, print("-1") OR N-1번 출력..

[백준/C++/Queue] 1158 - 요세푸스 문제

1. 문제 링크 https://www.acmicpc.net/problem/1158 1158번: 요세푸스 문제 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) www.acmicpc.net 2. 문제 해석 input: n, k output: n개의 element가 있는 요세푸스 순열 원으로 둘러앉아 하나씩 제거 예제 입력 1: 7 3 입력 i = 0 -> 3 push i = 1 -> 3 + 3 = 6 push i = 2 -> 6 + 3 - 7 = 2 push i = 3 -> 2 + 3 = 5 push i = 4 -> 5 + 3 - 7 = 1 push i = 5 -> 1 + 3 = 4 push i = 6 -> 4 + 3 = 7 push 3. 발생한 문제 및 문..

[백준/C++/Stack] 1874 - 스택 수열

1. 문제 링크 https://www.acmicpc.net/problem/1874 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net 2. 문제 해석 input: 숫자 n, 그리고 n개의 숫자 (즉, 수열) output: push 일 때 '+', pop 일 때 '-', 불가능일때 'NO' LIFO 특성을 가진 stack 사용 stack에 1부터 n까지 숫자가 있음. last in이 n. pop()된 숫자들은 max보다 이전에 입력으..