백준 문제풀이
-
BOJ 14395 : 4연산백준 문제풀이/GRAPH 2020. 3. 6. 15:56
풀이 문제 풀어보기 유사문제 2020/03/06 - [백준 문제풀이/GRAPH] - BOJ 12906 : 새로운 하노이 탑 BOJ 12906 : 새로운 하노이 탑 풀이 문제 풀어보기 BFS 유형 중에서 이런 STL 을 사용하는 경우가 별로 없어서 포스팅해봤습니다. 이 문제에선 Array, String, Map 함수들이 사용됩니다. 우선 map 을 보겠습니다. map '변수명'.. junco.tistory.com 코드 #include #include #include #include #include using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(NULL); long long st, end; cin >> ..
-
BOJ 12906 : 새로운 하노이 탑백준 문제풀이/GRAPH 2020. 3. 6. 14:22
풀이 문제 풀어보기 BFS 유형 중에서 이런 STL 을 사용하는 경우가 별로 없어서 포스팅해봤습니다. 이 문제에선 Array, String, Map 함수들이 사용됩니다. 우선 map 을 보겠습니다. map '변수명' 의 방식으로 사용되며 조금 어려울 수도 있는 함수입니다. 보통 bfs 에서 check[][] 라는 배열을 통해서 방문했던 위치를 파악합니다. 하지만 그게 좌표처럼 간단한 값이 아닌 경우 지금처럼 'aabbc' 라는 문자를 탐색했었는지?? 를 파악해야 하는 경우 map 함수가 사용됩니다. 그리고 이 문제에서는 그러한 key 값으로 array 이라는 배열을 사용했네요. 굳이 array 를 사용한 이유는 자료형과 크기를 확정 지을 수 있기 때문입니다. vector 의 경우..
-
BOJ 15686 : 치킨 배달백준 문제풀이/BRUTE FORCE 2020. 3. 1. 16:43
문제 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸, 왼쪽에서부터 c번째 칸을 의미한다. r과 c는 1부터 시작한다. 이 도시에 사는 사람들은 치킨을 매우 좋아한다. 따라서, 사람들은 "치킨 거리"라는 말을 주로 사용한다. 치킨 거리는 집과 가장 가까운 치킨집 사이의 거리이다. 즉, 치킨 거리는 집을 기준으로 정해지며, 각각의 집은 치킨 거리를 가지고 있다. 도시의 치킨 거리는 모든 집의 치킨 거리의 합이다. 임의의 두 칸 (r1, c1)과 (r2, c2) 사이의 거리는 |r1-r2| + |c1-c2|로 구한다. 예를 들어, 아래와 같은 지..
-
BOJ 5213 : 과외맨백준 문제풀이/GRAPH 2020. 2. 19. 17:22
문제 과외맨은 평소에 서강대학교 학생 이민혁으로 위장하고 있는 한국의 대표적인 영웅이다. 그는 슈퍼 히어로가 너무 미국에 집중되어 있는 현실을 안타까워했고, 그의 절친한 친구인 스파이더맨과 아이언맨에게 한국으로 와서 같이 영웅 활동을 하자는 제안을 했으나 거절당했다. 얼마 전, 오랜 잠에서 깨어난 고대 마야인들이 과외맨이 수업을 듣는 동안 과외 노트를 훔쳐갔다. 과외맨은 빼앗긴 노트를 찾아오기 위해 인천 공항으로 가서 과테말라로 가는 비행기를 탔다. 일단 언어가 통하지 않기 때문에, 과외맨은 자신의 특기를 살려서 일주일간 과테말라에서 스페인어를 과외 받았다. (이하생략) 입력 첫째 줄에 N이 주어진다. (1 ≤ N ≤ 500) 다음 줄부터 N*N-N/2줄(/는 정수 나눗셈이다)에는 두 양의 Ai와 Bi가..
-
BOJ 2143 : 두 배열의 합백준 문제풀이/BRUTE FORCE 2020. 2. 12. 22:35
문제 한 배열 A[1], A[2], …, A[n]에 대해서, 부 배열은 A[i], A[i+1], …, A[j-1], A[j] (단, 1 ≤ i ≤ j ≤ n)을 말한다. 이러한 부 배열의 합은 A[i]+…+A[j]를 의미한다. 각 원소가 정수인 두 배열 A[1], …, A[n]과 B[1], …, B[m]이 주어졌을 때, A의 부 배열의 합에 B의 부 배열의 합을 더해서 T가 되는 모든 부 배열 쌍의 개수를 구하는 프로그램을 작성하시오. 예를 들어 A = {1, 3, 1, 2}, B = {1, 3, 2}, T=5인 경우, 부 배열 쌍의 개수는 다음의 7가지 경우가 있다. 입력 첫째 줄에 T(-1,000,000,000 ≤ T ≤ 1,000,000,000)가 주어진다. 다음 줄에는 n(1 ≤ n ≤ 1,000..
-
[C++] 카카오 코딩테스트 < 길 찾기 게임 > 문제풀이백준 문제풀이/etc 2020. 2. 9. 16:30
풀이 바로 본론으로 갑시다. 여기로 가시면 문제를 풀어보실 수 있습니다. 문제를 읽어보니 전무로 승진한 라이언이 사원들을 위해서 무언가 엄청 분석하고 있습니다. 하지만, 문제에서 요구하는 것은 간단합니다. 기본적인 트리를 구현하고 전위순회와 후위 순회를 수행해라. 트리 구현이 필수적인 경우엔 반드시 필요한 요소만을 구현할 필요가 있습니다. 기본적으로 자료구조에서 배운 트리는 Value 값만을 갖고 왼쪽 자식, 오른쪽 자식을 구별합니다. 저는 이 문제를 해결하기 위해 TreeNode 의 멤버 변수로 x, y, value 를 사용했습니다. y 는 상대적인 depth 를 의미합니다. x 는 크기를 비교하는 key 값이 됩니다. value는 실질적으로 답이 되는 값입니다. Tree 의 구현은 자료구조 개념과 같..
-
BOJ 13460 : 구슬 탈출 2백준 문제풀이/BRUTE FORCE 2020. 2. 6. 13:43
문제 스타트링크에서 판매하는 어린이용 장난감 중에서 가장 인기가 많은 제품은 구슬 탈출이다. 구슬 탈출은 직사각형 보드에 빨간 구슬과 파란 구슬을 하나씩 넣은 다음, 빨간 구슬을 구멍을 통해 빼내는 게임이다. 보드의 세로 크기는 N, 가로 크기는 M이고, 편의상 1×1크기의 칸으로 나누어져 있다. 가장 바깥 행과 열은 모두 막혀져 있고, 보드에는 구멍이 하나 있다. 빨간 구슬과 파란 구슬의 크기는 보드에서 1×1크기의 칸을 가득 채우는 사이즈이고, 각각 하나씩 들어가 있다. 게임의 목표는 빨간 구슬을 구멍을 통해서 빼내는 것이다. 이때, 파란 구슬이 구멍에 들어가면 안 된다. 이때, 구슬을 손으로 건드릴 수는 없고, 중력을 이용해서 이리 저리 굴려야 한다. 왼쪽으로 기울이기, 오른쪽으로 기울이기, 위쪽으..
-
BOJ 14391 : 종이 조각백준 문제풀이/BRUTE FORCE 2020. 1. 30. 15:05
문제 영선이는 숫자가 쓰여 있는 직사각형 종이를 가지고 있다. 종이는 1×1 크기의 정사각형 칸으로 나누어져 있고, 숫자는 각 칸에 하나씩 쓰여 있다. 행은 위에서부터 아래까지 번호가 매겨져 있고, 열은 왼쪽부터 오른쪽까지 번호가 매겨져 있다. 영선이는 직사각형을 겹치지 않는 조각으로 자르려고 한다. 각 조각은 크기가 세로나 가로 크기가 1인 직사각형 모양이다. 길이가 N인 조각은 N자리 수로 나타낼 수 있다. 가로 조각은 왼쪽부터 오른쪽까지 수를 이어 붙인 것이고, 세로 조각은 위에서부터 아래까지 수를 이어붙인 것이다. 아래 그림은 4×4 크기의 종이를 자른 한 가지 방법이다. 각 조각의 합은 493 + 7160 + 23 + 58 + 9 + 45 + 91 = 7879 이다. 종이를 적절히 잘라서 조각의..