일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 14890
- 14891
- 13458
- C++
- 10872
- 15683
- 15649
- 15650
- 13460
- rustup
- 분해합
- 15652
- 1259
- 14503
- 백준
- 연산자 끼워넣기 성공
- 14501
- rust설치
- 14888
- C
- 러스트란 #cargo
- 테트로미노
- 14500
- 9663
- 문제풀이
- 3190
- 백트래킹
- 15651
- 팰린드롬수
- 2798
목록전체 글 (26)
Easy-So-Easy

백준 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크기의 칸을 가득 채우는 사이즈이고, 각각 하나씩 들어가 있다. 게임의 목표는 빨간 구슬을 구멍을 통해서 빼내는 것이다. 이때, 파란 구슬이 구멍에 들어가면 안 된다. 이때, 구슬을 손으로 건드릴 수는 없고, 중력을 이용해서 이리 저리 굴려야 한다. 왼쪽으로 기울이..

백준 12100 문제(Problem) 백준(BOJ)의 문제 중 하나인 3190번 문제를 해결해보려고 합니다. 이 문제는 뱀이 기어다니며 사과를 먹으면 뱀의 길이가 늘어나고, 뱀이 벽이나 자기 자신의 몸과 부딪히면 게임이 종료되는 문제입니다. 전체 코드(Code) #include #include #include using namespace std; int N, K, L, X, x, y, map[101][101], sec, current_dir=4; char C; pair tail_pos = {0, 0}, head_pos = {0, 0}; queue dir; void print() { cout > x; map[y-1][x-1]=5; // 사과의 위치: 5 } cin >> L; for(int i=0; i> X..

백준 12100 문제(Problem) 풀이(Solution) 이 문제는 제목 그대로 easy 문제이다. 왜냐면 "5번까지 이동했을 때"라고 이동 횟수를 한정지어줬기 때문이다. 이 문제의 주의할 점은 다음과 같다. ** 한 번의 이동에서 이미 합쳐진 블록은 또 다른 블록과 다시 합쳐질 수 없다.** 이것을 계속 기억하면서 문제를 풀어나가자. 필자는 구현을 이용하여 문제를 풀었다. '상(1), 하(2), 좌(4), 우(3)'로 이동하는 케이스를 각각 코드 구현하였다. 코드는 아래에 확인하여 보기 바란다. 전체 코드(Code) #include #include using namespace std; int n, max_e, last; void check(int a[][21]) { for (int i = 0; i ..

백준 1259 문제(Problem) 풀이(Solution) 이 문제는 재귀 함수의 사용 방법만 알면 간단하게 구현이 가능하다. 연산자를 넣어줄 배열 op를 선언하여 덧셈, 뺄셈, 곱셈, 나눗셈의 개수를 각각 넣어주었다. 그리고 사용 개수가 남아 있으면 연산을 실행하며 모든 연산을 하였을 때 최솟값, 최댓값을 계속해서 갱신해주면 되는 문제이다. 전체 코드(Code) #include #include #include using namespace std; int N, A[101], op[4], res_min=INT_MAX, res_max=INT_MIN; int check(int pos, int i, int v) { if(pos==0) return v+arr[i]; // + 덧셈 if(pos==1) return ..