Problem Solving/BOJ
-
[BOJ] #13458 _ 시험 감독Problem Solving/BOJ 2019. 10. 20. 22:48
[시험 감독] https://www.acmicpc.net/problem/13458 13458번: 시험 감독 첫째 줄에 시험장의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 각 시험장에 있는 응시자의 수 Ai (1 ≤ Ai ≤ 1,000,000)가 주어진다. 셋째 줄에는 B와 C가 주어진다. (1 ≤ B, C ≤ 1,000,000) www.acmicpc.net 총 감독관 한 명이 최대로 감시할 수 있는 수를 빼고, 부감독의 수를 구해주었다. [ 소스 코드 ] #include #include int N, A[1000001], B, C; int main() { int count = 0; scanf("%d", &N); for (int i = 1; i
-
[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의 연결 상태를 그래프로 나타내면 다음과 같다. 그래프를 보면, 모두 연결되어 있으며 최상위 부모 노드가 ..
-
[BOJ] #17070 _ 파이프 옮기기1Problem Solving/BOJ 2019. 8. 28. 21:51
[파이프 옮기기1] https://www.acmicpc.net/problem/17070 17070번: 파이프 옮기기 1 유현이가 새 집으로 이사했다. 새 집의 크기는 N×N의 격자판으로 나타낼 수 있고, 1×1크기의 정사각형 칸으로 나누어져 있다. 각각의 칸은 (r, c)로 나타낼 수 있다. 여기서 r은 행의 번호, c는 열의 번호이고, 행과 열의 번호는 1부터 시작한다. 각각의 칸은 빈 칸이거나 벽이다. 오늘은 집 수리를 위해서 파이프 하나를 옮기려고 한다. 파이프는 아래와 같은 형태이고, 2개의 연속된 칸을 차지하는 크기이다. 파이프는 회전시킬 수 있으며, 아래와 같이 www.acmicpc.net 조건대로만 파이프 옮기는 것이 가능한 시뮬레이션 문제이다. dfs를 이용하여 가능한 모든 경우를 찾는 방..