Problem Solving
-
[BOJ] #12100 _ 2048(Easy)Problem Solving/BOJ 2019. 10. 20. 22:42
[2048 (Easy)] https://www.acmicpc.net/problem/12100 12100번: 2048 (Easy) 첫째 줄에 보드의 크기 N (1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 게임판의 초기 상태가 주어진다. 0은 빈 칸을 나타내며, 이외의 값은 모두 블록을 나타낸다. 블록에 쓰여 있는 수는 2보다 크거나 같고, 1024보다 작거나 같은 2의 제곱꼴이다. 블록은 적어도 하나 주어진다. www.acmicpc.net 2048 게임에서 5번의 이동 후의 최대 값을 구하는 문제이다. dfs를 이용하여, 5번으로 이동할 수 있는 모든 경우의 수를 고려하여 최대 값을 구하였다. 단, 한 번의 이동에서 합쳐진 블록은 다시 합쳐지지 않는다는 것을 유의하자! [ 소스 코드 ] #..
-
[BOJ] #5373 _ 큐빙Problem Solving/BOJ 2019. 10. 20. 22:20
[큐빙] https://www.acmicpc.net/problem/5373 5373번: 큐빙 문제 루빅스 큐브는 삼차원 퍼즐이다. 보통 루빅스 큐브는 3×3×3개의 작은 정육면체로 이루어져 있다. 퍼즐을 풀려면 각 면에 있는 아홉 개의 작은 정육면체의 색이 동일해야 한다. 큐브는 각 면을 양방향으로 90도 만큼 돌릴 수 있도록 만들어져 있다. 회전이 마친 이후에는, 다른 면을 돌릴 수 있다. 이렇게 큐브의 서로 다른 면을 돌리다 보면, 색을 섞을 수 있다. 이 문제에서는 루빅스 큐브가 모두 풀린 상태에서 시작한다. 윗 면은 흰색, 아랫 면은 노란 www.acmicpc.net 엄청나게 귀찮은 시뮬레이션 문제이다. 큐브가 돌아가는 방식대로 회전시킨 후, 최종적으로 제일 윗면의 색을 출력하는 문제이다. 큐브가..
-
[BOJ] #1976 _ 여행 가자Problem Solving/BOJ 2019. 10. 20. 22:14
[여행가자] https://www.acmicpc.net/problem/1976 1976번: 여행 가자 동혁이는 친구들과 함께 여행을 가려고 한다. 한국에는 도시가 N개 있고 임의의 두 도시 사이에 길이 있을 수도, 없을 수도 있다. 동혁이의 여행 일정이 주어졌을 때, 이 여행 경로가 가능한 것인지 알아보자. 물론 중간에 다른 도시를 경유해서 여행을 할 수도 있다. 예를 들어 도시가 5개 있고, A-B, B-C, A-D, B-D, E-A의 길이 있고, 동혁이의 여행 계획이 E C B C D 라면 E-A-B-C-B-C-B-D라는 여행경로를 통해 목적을 달성할 www.acmicpc.net 문제의 ABCDE의 연결 상태를 그래프로 나타내면 다음과 같다. 그래프를 보면, 모두 연결되어 있으며 최상위 부모 노드가 ..
-
[SWEA] #4014 _ 활주로 건설Problem Solving/SWEA 2019. 8. 28. 22:29
[활주로 건설] https://swexpertacademy.com/main/code/problem/problemDetail.do SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 제약 사항대로 코드를 구현하면 되는 시뮬레이션 문제이다. [ 소스 코드 ] #include #include #include #define MAX 21 using namespace std; int map[MAX][MAX], N, X; int solve(); int main() { int test_case; scanf("%d", &test_case); //input for (int i = 1; i map[i][j]) is_need = 1; ..
-
[SWEA] #2112 _ 보호 필름Problem Solving/SWEA 2019. 8. 28. 22:15
[보호 필름] https://swexpertacademy.com/main/code/problem/problemDetail.do SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com dfs를 이용하여 모든 경우의 수를 다 돌린 후, 성능 검사에 통과하는 최소 투입 수를 구한다. dfs를 돌리는 경우는 총 세가지로 생각할 수 있다. 1. 약품 주입 X 2. A 약품 주입 3. B 약품 주입 [ 소스 코드 ] #include #include #include using namespace std; int D, W, K, injCount; vector film; void solve(int count, int idx); int ..