본문 바로가기

728x90

백준

[C++]백준 14719번: 빗물 문제 https://www.acmicpc.net/problem/14719 14719번: 빗물 첫 번째 줄에는 2차원 세계의 세로 길이 H과 2차원 세계의 가로 길이 W가 주어진다. (1 ≤ H, W ≤ 500) 두 번째 줄에는 블록이 쌓인 높이를 의미하는 0이상 H이하의 정수가 2차원 세계의 맨 왼쪽 위치 www.acmicpc.net 문제이해 첫 번째 줄에 H(세로의 길이)와 W(가로의 길이)를 입력한다. 두 번째 줄에 W개의 블록이 쌓인 높이를 입력한다. 고이게 되는 빗물의 총량을 출력한다. 가로를 기준으로 N번째의 위치에 고이게 되는 빗물의 높이를 구하기 위해서는 N번째 위치를 기준으로 왼쪽과 오른쪽에 가장 높게 쌓인 부분을 구해야 합니다. 이후 왼쪽의 가장 높게 쌓인 부분과 오른쪽의 가장 높게 쌓인.. 더보기
[C++]백준 11727번: 2xn 타일링 2 문제 https://www.acmicpc.net/problem/11727 11727번: 2×n 타일링 2 2×n 직사각형을 1×2, 2×1과 2×2 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×17 직사각형을 채운 한가지 예이다. www.acmicpc.net 문제이해 째 줄에 n을 입력합니다. 2xn 크기의 직사각형을 채우는 방법을 10007로 나눈 값을 출력합니다. 이 문제는 다이나믹 프로그래밍을 사용하는 문제입니다. 사용할 수 있는 블록은 2x1로 된 가로블록, 1x2로 된 세로 블록, 2x2로 된 정사각형 블록으로 총 3개가 있습니다. 점화식을 찾기 위해 우선 배열을 통해 설명해 보겠습니다. 2xi 크기의 직사각형을 채우는 방법을 의미합니다. dp [1]은 세로블록 한 .. 더보기
[C++]백준 5430번: AC 문제 https://www.acmicpc.net/problem/5430 5430번: AC 각 테스트 케이스에 대해서, 입력으로 주어진 정수 배열에 함수를 수행한 결과를 출력한다. 만약, 에러가 발생한 경우에는 error를 출력한다. www.acmicpc.net 문제이해 테스트 케이스의 개수가 입력으로 주어진다. 테스트 케이스만큼 수행할 함수와 배열에 들어있는 수의 개수, 배열이 입력된다. 함수가 수행된 결과를 출력한다. 만약 에러가 발생하는 경우에는 error를 출력한다. 명령어에는 R과 D가 있다. R은 전체 배열의 순서를 뒤바꾸는 것이고 D는 배열의 첫 번째 원소를 제거하는 것이다. 우선 R부터 봤을 때 전체 배열의 순서를 뒤바꾸는 함수인 reverse는 시간복잡도가 O(n)으로 R이 나올 때마다 r.. 더보기
[C++]백준 2258번: 정육점 문제 https://www.acmicpc.net/problem/2258 2258번: 정육점 첫째 줄에 두 정수 N(1 ≤ N ≤ 100,000), M(1 ≤ M ≤ 2,147,483,647)이 주어진다. N은 덩어리의 개수를 의미하고, M은 은혜가 필요한 고기의 양이다. 다음 N개의 줄에는 각 고기 덩어리의 무게와 가격을 나 www.acmicpc.net 문제반례 다음은 반례로 나오기 좋은 것들을 모아놓은 것이다. 더보기 10 14 2 3 2 4 2 5 3 1 1 3 7 9 7 3 8 4 10 3 3 10 답 : 4 3 2 1 1 1 1 2 3 답 : 2 10 10 2 3 2 4 2 5 3 1 1 3 7 9 7 3 8 4 10 3 3 10 답 : 3 4 9 1 2 2 4 3 6 4 8 답 : 8 7 15 .. 더보기
[C++]백준 1182번: 부분수열의 합 문제 https://www.acmicpc.net/problem/1182 1182번: 부분수열의 합 첫째 줄에 정수의 개수를 나타내는 N과 정수 S가 주어진다. (1 ≤ N ≤ 20, |S| ≤ 1,000,000) 둘째 줄에 N개의 정수가 빈 칸을 사이에 두고 주어진다. 주어지는 정수의 절댓값은 100,000을 넘지 않는다. www.acmicpc.net 문제이해 첫째 줄에 정수의 개수와 합으로써 원하는 값을 입력한다. 두 번째 줄에는 정수의 개수만큼의 수를 입력한다. 출력으로 부분 수열의 합이 원하는 값이랑 똑같았던 경우가 몇 번인지 출력한다. 수에 딱히 규칙성도 없고 무작위의 수중에서 무작위 수만큼을 골라 원하는 값이 나오는지 확인해야 하기 때문에 브루트포스 알고리즘을 사용하여야 한다. 브루트포스 알고리.. 더보기
[C++]백준 14891번: 톱니바퀴 문제 https://www.acmicpc.net/problem/14891 14891번: 톱니바퀴 총 8개의 톱니를 가지고 있는 톱니바퀴 4개가 아래 그림과 같이 일렬로 놓여져 있다. 또, 톱니는 N극 또는 S극 중 하나를 나타내고 있다. 톱니바퀴에는 번호가 매겨져 있는데, 가장 왼쪽 톱니바퀴 www.acmicpc.net 문제이해 우선 입력으로 4개의 톱니바퀴의 톱니 극을 받고 이후 회전 횟수와 회전 기어, 방향을 입력 받습니다. 각각의 회전에 대한 변화를 구현해야 됩니다. 출력은 생각보다 간단하게 각 톱니바퀴의 0번째 인덱스의 값만 이용해 계산하면 됩니다. 문제해결 struct gears { vector magnet; gears* leftGear; gears* rightGear; int way; void.. 더보기

LIST