알고리즘 문제분석(35)
-
[완전탐색] 백준 3085번 사탕 게임
www.acmicpc.net/problem/3085 3085번: 사탕 게임 첫째 줄에 상근이가 먹을 수 있는 사탕의 최대 개수를 출력한다. www.acmicpc.net 수행시간 : 30분 + 30분(예외케이스 테스트시간) BFS로 접근했다가, 세로는 세로로만 연속되고, 가로는 가로로만 연속되는 걸 count 해줘야 되기때문에 그냥 브루트포스로 풀었다. 역시 브루트포스는 처음 알고리즘 구상부분이 가장 힘든거 같다.. #include #include using namespace std; int n; char map[51][51]; int maxCnt = 0; void column(char arr[51][51], int s) { //세로 for (int i = 0; i < s; i++) { int cnt = ..
2021.02.22 -
[DFS] 백준 1325 효율적인 해킹
www.acmicpc.net/problem/1325 > n >> m; int a, b; for (int i = 0;i > a >> b; map[b].push_back(a); } for (int i = 1; i
2021.02.18 -
[구현] 백준 14891 톱니바퀴
www.acmicpc.net/problem/14891 수행기간 : 3시간 이 문제는 사실 풀었어도 올리지 않으려고 했다... 빡구현으로 푼 첫문제였고, 그 만큼 쓸때없는 코드들도 많고 그냥 노다가 한 느낌이 났기 때문에 ㅜㅜ 그래도 내가 원래 알고리즘을 잘 푸는 편도 아니였고, 차차 나아지면 되니까 나~~중에 실력이 늘었을 때, 그 때 지금의 코드를 보면 어떨까 싶어 올린다. #include #include #include #include using namespace std; int a[8], b[8], c[8], d[8], k; int num, dir; void right_rotate(int arr[], int first, int end) { //시계 방향 int last = arr[end]; for ..
2021.02.17 -
[C++] vector/queue 새롭게 알게된 내용 정리
오늘은 저번에 풀었던 백준 16234번 인구이동문제에서 알게된 벡터와 큐의 성질을 한번 정리해 보려고한다. q.front().first 이렇게 .first / .second를 통해 첫번째 원소 두번째 원소로 접근이 가능하다. 그런데 만약 내가 일반 int형 queue가 아닌 내가 정의한 구조체형의 queue를 만들었다면, .first가 아닌 구조체의 변수로 접근이 가능하다. 예를들어 //구조체 선언 struct mj{ int x,y; } //벡터 선언 vector A; //큐 선언 queue q; //큐 pop int nx = q.first().x int ny = q.first().y 이런 식으로 사용이 가능하다. 일단 벡터를 잘 사용해보지 않은 사용자로써 하나하나 알아가는게 많은 도움이 된다. 이것과 ..
2021.02.15 -
[BFS&구현] 백준 16234 인구 이동
www.acmicpc.net/problem/16234 16234번: 인구 이동 N×N크기의 땅이 있고, 땅은 1×1개의 칸으로 나누어져 있다. 각각의 땅에는 나라가 하나씩 존재하며, r행 c열에 있는 나라에는 A[r][c]명이 살고 있다. 인접한 나라 사이에는 국경선이 존재한다. 모 www.acmicpc.net #include #include #include #include using namespace std; int n, L, R; int A[101][101] = { 0, }; bool visit[101][101]; int dx[4] = { 1,-1,0,0 }; int dy[4] = { 0,0,1,-1 }; int cnt; int sum; struct m { int x, y; }; void initVi..
2021.02.15 -
[BFS] 백준 7576 토마토
www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net 수행기간 : 2021/01/26~ 01/28 정말 오래걸린 문제였다. 이 문제를 거의 3일에 걸쳐서 잡고 있었는데, 그만큼 스트레스도 많았고.. 힘들었다. 분명 2~3시간 내로 풀릴 것만 같았던 문제는 수 많은 오류들과 함께 3일이라는 시간이 걸렸다. bfs를 써서 풀었고, cnt를 조정하기가 힘들었다. #include #include #include using namespace std; int..
2021.02.01