본문 바로가기

백준

(148)
연산자 끼워넣기(2) www.acmicpc.net/problem/15658 15658번: 연산자 끼워넣기 (2) N개의 수로 이루어진 수열 A1, A2, ..., AN이 주어진다. 또, 수와 수 사이에 끼워넣을 수 있는 연산자가 주어진다. 연산자는 덧셈(+), 뺄셈(-), 곱셈(×), 나눗셈(÷)으로만 이루어져 있다. 연산자의 개수 www.acmicpc.net #include #include using namespace std; int oper[4]; int arr[11]; int n; int t=0; int maxcalc,mincalc; void findminmax(int totaloper, int res, int plus, int minus, int mult, int divide) { if(plus==0 && minus=..
나무 재테크 www.acmicpc.net/problem/16235 16235번: 나무 재테크 부동산 투자로 억대의 돈을 번 상도는 최근 N×N 크기의 땅을 구매했다. 상도는 손쉬운 땅 관리를 위해 땅을 1×1 크기의 칸으로 나누어 놓았다. 각각의 칸은 (r, c)로 나타내며, r은 가장 위에서부터 www.acmicpc.net #include #include #include #include using namespace std; int N, M, K; int dx[] = { -1,-1,-1,0,0,1,1,1 }; int dy[] = { -1,0,1,-1,1,-1,0,1 }; int main() { int x, y, z; int a[11][11]; int yangbun[11][11]; vectorarr(11, vector..
이차원 배열과 연산 www.acmicpc.net/problem/17140 17140번: 이차원 배열과 연산 첫째 줄에 r, c, k가 주어진다. (1 ≤ r, c, k ≤ 100) 둘째 줄부터 3개의 줄에 배열 A에 들어있는 수가 주어진다. 배열 A에 들어있는 수는 100보다 작거나 같은 자연수이다. www.acmicpc.net #include #include #include #include using namespace std; #define N 100 int Y = 3; int X = 3; vector map; struct str { int value; int cnt; str(int value, int cnt) :value(value), cnt(cnt) {}; }; bool operator> r >> c >> k; map..
낚시왕 www.acmicpc.net/problem/17143 17143번: 낚시왕 낚시왕이 상어 낚시를 하는 곳은 크기가 R×C인 격자판으로 나타낼 수 있다. 격자판의 각 칸은 (r, c)로 나타낼 수 있다. r은 행, c는 열이고, (R, C)는 아래 그림에서 가장 오른쪽 아래에 있는 칸이다. www.acmicpc.net #include #include #include using namespace std; int dx[] = { -1,1,0,0 }; //위,아래,왼,오 int dy[] = { 0,0,-1,1 }; int R, C; void move(pairarr[][102], paircheck) { pairnewarr[102][102]; for (int i = 0; i z; arr[r][c]= make_pai..
미세먼지 안녕! www.acmicpc.net/problem/17144 17144번: 미세먼지 안녕! 미세먼지를 제거하기 위해 구사과는 공기청정기를 설치하려고 한다. 공기청정기의 성능을 테스트하기 위해 구사과는 집을 크기가 R×C인 격자판으로 나타냈고, 1×1 크기의 칸으로 나눴다. 구사 www.acmicpc.net #include #include #include #include using namespace std; int dx[] = { -1,1,0,0 }; int dy[] = { 0,0,-1,1 }; int main() { int R, C, T; cin >> R; cin >> C; cin >> T; int arr[51][51]; int check[51][51]; int gi, gj; memset(arr, 0, size..
인구이동 www.acmicpc.net/problem/16234 16234번: 인구 이동 N×N크기의 땅이 있고, 땅은 1×1개의 칸으로 나누어져 있다. 각각의 땅에는 나라가 하나씩 존재하며, r행 c열에 있는 나라에는 A[r][c]명이 살고 있다. 인접한 나라 사이에는 국경선이 존재한다. 모 www.acmicpc.net #include #include #include #include #include using namespace std; int dx[] = {-1,1,0,0}; int dy[] = {0,0,-1,1}; int main() { int N, L, R; cin >> N; cin >> L; cin >> R; int arr[101][101]; int check[101][101]; memset(check, 0..
파일 합치기 www.acmicpc.net/problem/11066 11066번: 파일 합치기 소설가인 김대전은 소설을 여러 장(chapter)으로 나누어 쓰는데, 각 장은 각각 다른 파일에 저장하곤 한다. 소설의 모든 장을 쓰고 나서는 각 장이 쓰여진 파일을 합쳐서 최종적으로 소설의 완성본 www.acmicpc.net #include #include int INF = 1000000007; using namespace std; int dp[501][501]; int cost[501]; int sum[501]; int T, K, i; int main() { cin >> T; while (T--) { cin >> K; for (i = 1; i > cost[i]; sum[i] = sum[i - 1] + cost[i]; } ..
1,2,3 더하기 4 www.acmicpc.net/problem/15989 15989번: 1, 2, 3 더하기 4 정수 4를 1, 2, 3의 합으로 나타내는 방법은 총 4가지가 있다. 합을 나타낼 때는 수를 1개 이상 사용해야 한다. 합을 이루고 있는 수의 순서만 다른 것은 같은 것으로 친다. 1+1+1+1 2+1+1 (1+1+2, 1+2+1) 2+2 www.acmicpc.net #include #include #include using namespace std; int dp[10001][4]; void solve(int n, int k) { if (dp[n][k]) { return; } for (int i = 4; i > num; solve(num,3); answer.push_back( dp[num][1] + dp[num]..