전체 글(724)
-
[백준/BOJ] 백준 9944번 : NxM 보드 완주하기
https://www.acmicpc.net/problem/9944 9944번: NxM 보드 완주하기 N×M 보드 위에서 할 수 있는 게임이 있다. 보드는 크기가 1×1인 정사각형 칸으로 나누어져 있다. 보드의 각 칸은 빈 칸 또는 장애물이다. 장애물은 아래 그림에선 어두운 사각형으로 표시되어져 www.acmicpc.net 시작점이 될 수 있는 모든 곳에서 시작하는 것을 고려하여 각 방향으로 가는 경우를 확인해 문제를 해결했다. 코드 #include #include #include #include using namespace std; int n, m; vector board; vector result; int visited[30][30]; int dxdy[4][2] = { {0,-1},{-1,0},{0,1..
2021.09.03 -
[백준/BOJ] 백준 12877번 : 먹이 사슬
https://www.acmicpc.net/problem/12877 12877번: 먹이 사슬 BOJ 행성에는 N마리의 동물들이 살고 있습니다. 민호는 이 동물들을 구분하기 위해 1, 2, ..., N의 번호를 붙였습니다. 또한 BOJ 행성에 살고 있는 모든 동물들은 A, B, C의 세 종류 중 하나입니다. 민 www.acmicpc.net 유니온 파인드를 이용하여 문제를 해결했는데, 논리적으로 오류가 아닌 것은 유니온 하였다. 이때 parent를 인덱스에 따라 종류를 나누어서 표시했다(1~50000은 A종류, 50001~100000은 B종류, 100001 ~ 150000은 C종류 일 때) 코드 #include #include #include #include using namespace std; int n,..
2021.09.03 -
[백준/BOJ] 백준 3678번 : 카탄의 개척자
https://www.acmicpc.net/problem/3678 3678번: 카탄의 개척자 "카탄의 개척자"는 많은 사람들이 즐기는 보드게임이다. 게임을 시작하려면, 먼저 게임판을 랜덤으로 만들어야 한다. 게임판은 육각형 타일로 이루어져 있으며, 각 타일은 자원을 하나씩 포함하 www.acmicpc.net 게임판을 좌표로 만들었다. 움직이는 방향 6개(int dxdy[6][2])를 만들었고, 움직이려는 자리가 비어있지 않을 때 이전에 이동했던 방향으로 또 이동하는 방법으로 문제를 해결했다. 코드 #include #include #include #include using namespace std; int tc; vector board(3000, vector(3000, 0)); int dxdy[6][2] ..
2021.09.03 -
[백준/BOJ] 백준 1849번 : 순열
https://www.acmicpc.net/problem/1849 1849번: 순열 1부터 N까지의 수들이 한 번씩 쓰인 수열이 있다. 그 수열에서 i 앞에 있는 수 들 중, i보다 큰 수들의 개수를 A[i]라고 정의하자. A[i]가 주어져 있을 때, 원래 수열을 구하는 프로그램을 작성하여라 www.acmicpc.net 작은 숫자부터(1부터) 해당 숫자의 위치를 찾았다. 해당 숫자 앞에 해당 숫자보다 큰 것의 개수가 a개 있다고 하면, 비어있는 자리들 중 a+1번째에 해당 숫자가 들어가야 된다 왜냐하면 채워져 있는 자리는 모두 해당 숫자보다 작은 숫자들이기 때문이다(작은 숫자부터 채우기 때문) 코드 #include #include #include #include using namespace std; in..
2021.09.03 -
[백준/BOJ] 백준 4577번 : 소코반
https://www.acmicpc.net/problem/4577 4577번: 소코반 소코반은 1982년에 일본에서 만들어진 게임으로, 일본어로 창고지기라는 뜻이다. 이 게임은 캐릭터를 이용해 창고 안에 있는 박스를 모두 목표점으로 옮기는 게임이다. 목표점의 수와 박스의 수 www.acmicpc.net 움직일 위치와 박스가 움직일 위치들을 고려하여 문제를 해결했다. 코드 #include #include #include #include #include using namespace std; int r, c; vector board; pair here; int dxdy[4][2] = { {0,-1},{-1,0},{0,1},{1,0} }; int game_cnt = 0; string result; void Pr..
2021.09.03 -
[백준/BOJ] 백준 12764번 : 싸지방에 간 준하
https://www.acmicpc.net/problem/12764 12764번: 싸지방에 간 준하 첫째 줄에 사람의 수를 나타내는 \(N\)이 주어진다. \((1 \le N \le 100,000)\) 둘째 줄부터 \(N\)개의 줄에 걸쳐서 각 사람의 컴퓨터 이용 시작 시각 \(P\)와 종료 시각 \(Q\)가 주어진다. \((0 \le P \lt Q \le 1,000 www.acmicpc.net priority_queue pq (-시간,사용자번호, 시작인지 종료인지(0:시작, 1:종료))를 저장하는 우선순위 큐와, priority_queue can_use_com (-사용 가능한 컴퓨터 번호)를 저장하는 우선순위 큐를 만들어 문제를 해결했다. 코드 #include #include #include #incl..
2021.09.03