본문 바로가기
반응형

알고리즘/백준31

[cpp 알고리즘] 백준 15721 번데기 [백준] 15721 번데기알고리즘: 구현, 브루트포스 알고리즘, 시뮬레이션https://www.acmicpc.net/problem/15721문제 요약- n-1회차 문장일 때는 "뻔 – 데기 – 뻔 – 데기 – 뻔(x n번) – 데기(x n번)" 로 번데기 게임이 진행된다.- 원으로 앉아있고, 반시계방향으로 게임을 진행한다.- T번재 '뻔' 또는 '데기'를 외치는 사람이 몇 번째 사람인지 구하는 문제이다. 풀이 정리구하고자 하는 T번째가 10000보다 작기 때문에, 브루트포스 알고리즘을 선택했다. - N=1일 때, 뻔-데기-뻔-데기-뻔-뻔-데기-데기- N=2일 때, 뻔-데기-뻔-데기-뻔-뻔-뻔-데기-데기-데기- N=3일 때, 뻔-데기-뻔-데기-뻔-뻔-뻔-뻔-데기-데기-데기-데기위와 같이 진행이 되고, T번.. 2024. 8. 6.
[cpp 알고리즘] 백준 1080 행렬 [백준] 1080 행렬 풀이알고리즘: 그리디 알고리즘https://www.acmicpc.net/problem/1080문제 요약- N*M 크기의 행렬이 두 개 주어진다.- 기존 A의 행렬을 B로 바꾸는데 필요한 연산 횟수의 최소값을 구하면 된다. (연산은 모든 원소를 뒤집는 것을 의미한다.)풀이 정리- 두 행렬의 요소들을 각각 비교하고 동일하면 0, 다르다면 1로 구성된 temp 배열을 만들었다.- (0,0)부터 (N,M)까지 확인해보면서 서로 다르다면(=1이라면) 그 부분을 기준으로 3*3 만큼 모든 원소를 뒤집었다. C++ 코드#include #include using namespace std;int N, M;int arr[55][55];int arr2[55][55];int temp[55][55]; /.. 2024. 7. 22.
[cpp 알고리즘] 백준 13565 침투 [백준] 13565 침투 cpp 풀이알고리즘: 그래프 이론, 그래프 탐색, 너비우선탐색(bfs), 깊이우선탐색(dfs)https://www.acmicpc.net/problem/13565문제 요약- 2차원 격자가 주어지고, 각 격자는 0(전류 흐름)과 1(전류 차단)로 구성되어있다.- 각 전류는 상하좌우로 이동할 수 있다.- 이 때, 격자의 위쪽(outer side)에서 아래쪽(inner side) 까지 전류가 올 수 있는지 YES/NO를 출력해주면 된다.풀이 정리- 완전 기본적인 dfs 문제였다. M*N 격자 안에 있고 아직 방문하지 않은 점이면서 전류가 흐를 수 있는 0의 칸이라면 dfs로 더 탐색해주었다.- 상하좌우 4방향에 dx와 dy배열을 이용했다.- 격자의 맨 위(행=0)인 지점에서 모두 시작했.. 2024. 7. 19.
[cpp 알고리즘] 백준 2422 한윤정이 이탈리에아 가서 아이스크림을 사먹는데 [백준] 2422 한윤정이 이탈리에아 가서 아이스크림을 사먹는데 cpp 풀이알고리즘: 브루트포스 알고리즘https://www.acmicpc.net/problem/2422문제 요약- 아이스크림은 1부터 N까지 N종류의 아이스크림이 있다.- M은 섞어 먹으면 안 되는 조합의 개수이다.- 아이스크림 맛을 3가지 선택할 때, 섞어 먹어도 되는 조합은 몇 가지인지 구하면 된다.풀이 정리1. 조합(nC3)을 이용하여 가능한 모든 경우를 구하고, 섞어 먹어도 되는 조합인지 확인하는 방법을 생각했다.2. 하지만 N의 최대 개수가 200 이었기 때문에, 더 단순하게 삼중 for문으로 구해보았다.3. 3가지 아이스크림이 서로 같이 먹어도 되는 조합인지 확인하기 위해서 vector 안에 배열을 넣어 두어, 두 숫자가 같은 .. 2024. 7. 18.
반응형