전체 글(724)
-
[백준/BOJ] 백준 2866번 : 문자열 잘라내기
www.acmicpc.net/problem/2866 2866번: 문자열 잘라내기 첫 번째 줄에는 테이블의 행의 개수와 열의 개수인 R과 C가 주어집니다. (2 ≤ R, C ≤ 1000) 이후 R줄에 걸쳐서 C개의 알파벳 소문자가 주어집니다. (가장 처음에 주어지는 테이블에는 열을 읽어서 www.acmicpc.net 이분 탐색을 이용해 문제를 해결했다. mid행부터 시작해서 만들어지는 문자열에 중복되는 게 있는지 없는지를 판단하였다. 코드 #include #include #include #include #include using namespace std; int r, c; vector board; bool Check(int point) { set col_string; set::iterator it; for..
2021.03.01 -
[백준/BOJ] 백준 15458번 : Barn Painting
www.acmicpc.net/problem/15458 15458번: Barn Painting Farmer John has a large farm with $N$ barns ($1 \le N \le 10^5$), some of which are already painted and some not yet painted. Farmer John wants to paint these remaining barns so that all the barns are painted, but he only has three paint colors available. www.acmicpc.net 루트가 1인 트리를 만들고, 트리 DP(트리에서 다이나믹 프로그래밍)를 이용해 문제를 해결했다. 주의해야 될 점은 there에 her..
2021.03.01 -
[백준/BOJ] 백준 1486번 : 등산
www.acmicpc.net/problem/1486 1486번: 등산 첫째 줄에 산의 세로크기 N과 가로크기 M 그리고, T와 D가 주어진다. N과 M은 25보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에 지도가 주어진다. T는 52보다 작거나 같은 자연수이고, D는 1,000 www.acmicpc.net 다익스트라를 이용해 문제를 해결했다. 각각의 산에서 호텔로 가는 최단 시간을 구해서 저장해 놓고, 호텔 위치에서 각각 산으로 가는 최단 시간을 구한 뒤 d 이하 시간에 호텔로 돌아올 수 있는지 판단하였다. 코드 #include #include #include #include #include #include #include using namespace std; int n, m, t, d; vect..
2021.02.28 -
[백준/BOJ] 백준 16434번 : 드래곤 앤 던전
www.acmicpc.net/problem/16434 16434번: 드래곤 앤 던전 첫 번째 줄에 방의 개수 N (1 ≤ N ≤ 123,456) 과 용사의 초기 공격력 HATK (1 ≤ HATK ≤ 1,000,000) 가 주어집니다. i+1번째 줄엔 i번째 방의 정보를 나타내는 세개의 정수 ti, ai, hi (ti ∈ {1, 2}, 1 www.acmicpc.net 이분 탐색을 이용해 문제를 해결했다. 해당 최대 생명력으로 해결이 가능한지 판단하는 것은 각 방을 돌며 다음 방으로 도달할 수 있는지 확인하는 것인데 몬스터를 만났을 때 용사와 몬스터가 이기기 위해 공격하는 횟수를 구해서 누가 이기는지 판단하였다. 그리고 오버플로우에 유의하였다. (예) (left / 2) + (right / 2); //더할때..
2021.02.28 -
[백준/BOJ] 백준 1062번 : 가르침
www.acmicpc.net/problem/1062 1062번: 가르침 첫째 줄에 단어의 개수 N과 K가 주어진다. N은 50보다 작거나 같은 자연수이고, K는 26보다 작거나 같은 자연수 또는 0이다. 둘째 줄부터 N개의 줄에 남극 언어의 단어가 주어진다. 단어는 영어 소문 www.acmicpc.net 각각 단어가 가지고 있는 알파벳의 정보를 비트 연산자로 저장해 놓는다. 그리고 a, c, i, n, t를 제외한 알파벳을 골라가는데, 알파벳을 고를 때도 고른 정보를 비트 연산자를 이용해 저장한다. 그리고 알파벳을 다 골랐을 때 고른 알파벳들로 단어를 만들 수 있는지 확인하는 것도 비트 연산을 통해 확인한다. 코드 #include #include #include #include #include #incl..
2021.02.28 -
[백준/BOJ] 백준 16985번 : Maaaaaaaaaze
www.acmicpc.net/problem/16985 16985번: Maaaaaaaaaze 첫째 줄부터 25줄에 걸쳐 판이 주어진다. 각 판은 5줄에 걸쳐 주어지며 각 줄에는 5개의 숫자가 빈칸을 사이에 두고 주어진다. 0은 참가자가 들어갈 수 없는 칸, 1은 참가자가 들어갈 수 있는 칸을 www.acmicpc.net 각각 보드를 돌렸을 상황에 대해서 보드를 쌓는 경우를 모두 고려하여 문제를 해결했다. boards의 각 칸은 boards[z][x][y]를 나타낸다. 코드 #include #include #include #include using namespace std; int boards[5][5][5]; int dxdy[6][3] = { {1,0,0},{-1,0,0},{0,1,0},{0,-1,0},{..
2021.02.28