일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 백준
- 14500
- 3190
- 14501
- 연산자 끼워넣기 성공
- 15683
- 테트로미노
- 14891
- 15652
- 14888
- 팰린드롬수
- 1259
- 9663
- rustup
- 15649
- C
- 15650
- rust설치
- 14503
- 백트래킹
- C++
- 러스트란 #cargo
- 13458
- 분해합
- 13460
- 10872
- 15651
- 14890
- 문제풀이
- 2798
목록백준 (19)
Easy-So-Easy

백준 15683 문제(Problem) 풀이 & 전체 코드(Solution & Code) #include #include using namespace std; int n, m, res = 99; char map[9][9]; // 방향 정보를 저장하는 배열 // dir - 상: 0, 우: 1, 하: 2, 좌: 3 int dx[] = {0, 1, 0, -1}; int dy[] = {-1, 0, 1, 0}; // CCTV 정보를 저장하는 구조체 typedef struct { int x; int y; int dir; char type; } CCTV; vector v; // 모든 CCTV 정보를 저장하는 벡터 // 해당 방향으로 감시 가능한 영역을 설정하는 함수 void setting(int dir, int x, ..

백준 14891 문제(Problem) 풀이 & 전체 코드(Solution & Code) #include using namespace std; int res, cnt=1; char wheels[5][9]; // 톱니바퀴를 돌리는 함수 void spin(int w, int dir) { char temp; if(dir==1) { // 오른쪽으로 spin temp=wheels[w][8]; for(int i=8; i>1; i--) wheels[w][i]=wheels[w][i-1]; wheels[w][1]=temp; } else { // 왼쪽으로 spin temp=wheels[w][1]; for(int i=1; i4) return; // 기저조건: 오른쪽에 톱니바퀴가 없을 때 if(wheels[w][3] != wh..

백준 14890 문제(Problem) 풀이 & 전체 코드(Solution & Code) #include #include #include using namespace std; int n, l, map[101][101], cnt, visited[101][101]; // 세로 방향(열)의 경로의 유효성을 확인하는 함수 int check_1(int x) { for(int i=0; i0; i--) { int k = map[i][x] - map[i-1][x]; // 높이 차이가 1이상이면 0 반환 if(k != 1 && k != 0 && k != -1) return 0; // 경사를 아래로 향하게 놓는 경우 if(k == 1) { i--; // 이미 방문했으면 0 반환 if(visited[i][x]) return ..

백준 14503 문제(Problem) 풀이 & 전체 코드(Solution & Code) 이 문제는 문제에 작성된 논리대로 코드를 구현하면 된다. 로봇 청소기의 움직임) 1. 현재 칸이 아직 청소되지 않은 경우, 현재 칸을 청소한다. if(!map[y][x]) { // 1. 청소되지 않은 칸이면 청소 표시 cnt++; map[y][x]=2; // 청소 표시: 2 } 2. 현재 칸의 주변 4칸 중 청소되지 않은 빈 칸이 없는 경우, - 바라보는 방향을 유지한 채로 한 칸 후진 후 1번으로 돌아감 - 바라보는 방향의 뒤쪽 칸이 벽이면 작동을 멈춤 if(check(x, y)) { // 2. 주변의 4칸 중 청소되지 않은 빈칸이 없는 경우 nd = (d+2)%4; nx=x+dx[nd]; ny=y+dy[nd]; i..

백준 14501 문제(Problem) 입력 첫째 줄에 N (1 ≤ N ≤ 15)이 주어진다. 둘째 줄부터 N개의 줄에 Ti와 Pi가 공백으로 구분되어서 주어지며, 1일부터 N일까지 순서대로 주어진다. (1 ≤ Ti ≤ 5, 1 ≤ Pi ≤ 1,000) 출력 첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다. 풀이 & 전체 코드(Solution & Code) #include #include using namespace std; int n, t[1002], p[1002], dp[1002]; int main() { // 남은 일 수 N 입력 cin >> n; // N일 동안의 상담 시간(t)과 수익(p) 입력 for(int i=0; i> t[i] >> p[i]; // 뒤에서부터 동적 계획법을 사용하여 최..

백준 14500 문제(Problem) 입력 첫째 줄에 종이의 세로 크기 N과 가로 크기 M이 주어진다. (4 ≤ N, M ≤ 500) 둘째 줄부터 N개의 줄에 종이에 쓰여 있는 수가 주어진다. i번째 줄의 j번째 수는 위에서부터 i번째 칸, 왼쪽에서부터 j번째 칸에 쓰여 있는 수이다. 입력으로 주어지는 수는 1,000을 넘지 않는 자연수이다. 출력 첫째 줄에 테트로미노가 놓인 칸에 쓰인 수들의 합의 최댓값을 출력한다. 풀이 & 전체 코드(Solution & Code) 풀이) dfs 코드를 기반으로 추가 구현 코드를 작성하면 쉽게 풀 수 있는 문제이다. 필자는 side_dfs 함수를 추가로 구현하여 문제를 풀었는데, 'ㅗ, ㅓ, ㅜ, ㅏ' 와 같이 4가지의 경우는 dfs만으로 구현할 수 없기에 side_d..

백준 13458 문제(Problem) 입력 첫째 줄에 시험장의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 각 시험장에 있는 응시자의 수 Ai (1 ≤ Ai ≤ 1,000,000)가 주어진다. 셋째 줄에는 B와 C가 주어진다. (1 ≤ B, C ≤ 1,000,000) 출력 각 시험장마다 응시생을 모두 감독하기 위해 필요한 감독관의 최소 수를 출력한다. 풀이 & 전체 코드(Solution & Code) #include using namespace std; int n, a[1000001], b, c; long long cnt; int main() { cin >> n; for(int i=0; i> a[i]; cin >> b >> c; cnt = n; // 초기 감독관 수를 테스트 사이트..

백준 13460 문제(Problem) 스타트링크에서 판매하는 어린이용 장난감 중에서 가장 인기가 많은 제품은 구슬 탈출이다. 구슬 탈출은 직사각형 보드에 빨간 구슬과 파란 구슬을 하나씩 넣은 다음, 빨간 구슬을 구멍을 통해 빼내는 게임이다. 보드의 세로 크기는 N, 가로 크기는 M이고, 편의상 1×1크기의 칸으로 나누어져 있다. 가장 바깥 행과 열은 모두 막혀져 있고, 보드에는 구멍이 하나 있다. 빨간 구슬과 파란 구슬의 크기는 보드에서 1×1크기의 칸을 가득 채우는 사이즈이고, 각각 하나씩 들어가 있다. 게임의 목표는 빨간 구슬을 구멍을 통해서 빼내는 것이다. 이때, 파란 구슬이 구멍에 들어가면 안 된다. 이때, 구슬을 손으로 건드릴 수는 없고, 중력을 이용해서 이리 저리 굴려야 한다. 왼쪽으로 기울이..