일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- c++
- 그래프
- 누적 합
- 백트래킹
- 문자열
- Unreal Engine 5
- 시뮬레이션
- 자료구조
- 그리디 알고리즘
- 트리
- 우선순위 큐
- 알고리즘
- 백준
- 다익스트라
- 다이나믹 프로그래밍
- 투 포인터
- 유니티
- ue5
- DFS
- 정렬
- VR
- BFS
- 브루트포스
- Team Fortress 2
- 스택
- 수학
- XR Interaction Toolkit
- 재귀
- 유니온 파인드
- 구현
- Today
- Total
목록분류 전체보기 (619)
1일1알
https://www.acmicpc.net/problem/15488 dp테이블을 [행][열][움직일 수 있는 횟수]로 정하고 똑같은 행,열, 움직일 수 있는 횟수를 2번이상 탐색한다면 기존에 구해놓은 값을 바로 반환하는 메모이제이션 방식을 사용하였다. 나이트가 다음에 가있을 칸을 계산하고 움직일 수 있는 횟수를 1씩 줄이면서 탐색해나간다.1. 만약 나이트가 체스판 밖에있다면 0을 반환한다.2. 만약 나이트가 방문한 [행][열][움직일 수 있는 횟수] 가 이전에 탐색된 기록이 있다면 그 값을 바로 반환한다.3. 만약 k가 0이면 더이상 움직일 수 없고, 체스판 안쪽에 있기 때문에 1을 반환한다. 나이트가 움직일 수 있는 방향은 8방향이기때문에 8방향에 대해 탐색을 진행한 값을 8로 나누고 캐시 테이블에 저..

https://www.acmicpc.net/problem/1930 a,b,c,d순으로, 역삼각형 모양의 전개도로 입력이 들어왔다고 가정하면a가 밑면일때 b,c,d가 시계방향으로 배치되어있고b가 밑면일때 a,d,cc가 밑면일때 d,a,bd가 밑면일때 c,b,a로 배치되어있다. 위의 경우들은 전부 같은 모양이다.위의 경우들을 저장해놓는다. 뒤에 들어오는 4개의 입력중 첫 입력은 밑면이고, 위에서 저장해놓은 밑면들과 비교하여 만약 밑면이 같다면 나머지 3개의 입력을 비교하여 같은지를 판별한다. 물론 (x,y,z), (y,z,x), (z,x,y)는 순서만 다를뿐 회전시키면 같은 모양이기 때문에 이 부분도 고려하여 비교하였다. #include #include #include #include #include #in..
https://www.acmicpc.net/problem/17349 단순해 보이지만 생각할게 은근 많은 문제였다. 우선 선수를 한명씩 지정하여 거짓말을 하고 있다고 가정하고 지정한 선수의 말을 바꿔서 모두 옳은말을 하고 있다고 가정한다. 여기서 두 사람의 말이 다르다면 모순인 상황이고, 바로 스킵해준다. 특정 선수를 1루수라고 주장하는 사람이 1명이라면, 그 경우에서는 주장한 사람이 지정한 선수가 1루수가 맞다.특정 선수를 1루수라고 주장하는 사람이 2명 이상이라면 틀린 경우이다.특정 선수를 1루수라고 주장하는 사람이 0명이라면 8명이 1루수라고 주장하지 않았을때만 나머지 1명이 1루수가 될 수 있다. 즉, 특정 선수를 1루수라고 주장하는 사람이 1명이거나 1루수가 아니라고 주장하는 경우가 8가지 경우일..
https://www.acmicpc.net/problem/17143 상어가 계속 움직이고 있는 상태에서 상어 낚시꾼이 오른쪽으로 움직이면서 잡을 수 있는 상어의 총 크기를 구하는 문제이다. Shark 클래스를 만들어서 상어의 크기, 속도, 움직이는 방향 등을 저장하고 관리하기 위해 입력받은 순서대로 Id를 부여하였다.클래스 내에 Move, Caught 멤버함수를 구현하여 상어가 움직이거나 잡혔을때 행동을 작성하였다. 1. 낚시꾼이 움직인다.2. 낚시꾼이 있는 열에서 땅에서 가장 가까운 상어를 잡는다.3. 상어가 움직인다. 위의 순서대로 동작한다. 낚시터의 격자에 상어의 Id로 상어의 위치를 표시했고, 낚시꾼이 움직이다가 상어를 잡을 수 있는 상황이면 Id로 상어의 정보를 찾아서 Shark::Caught함..
https://www.acmicpc.net/problem/1799 대각선으로만 이동할 수 있는 비숍 말들을 영역이 겹치지 않게 배치할 수 있는 최대의 수를 구하는 문제이다.처음에 배치할 수 있는 영역은 제한되어있고, 배치를 못하는곳에 움직이는 것은 가능하다. 우선 직관적으로 백트래킹으로 접근하여 배치가 가능한 영역들을 저장하고 저장한 영역들에 대해 백트래킹을 돌려주었다.한번 배치한 영역은 4가지 대각선 방향에 다른 말이 배치할 수 없도록 표시를 해두고 저장해뒀다가, 돌아올때는 표시한 영역들을 다시 원상태로 돌려주었다. 하지만 역시 골드1이라그런지 이런 단순한 방법으로는 풀리지 않았고 시간초과가 났다. 계속 생각해봤는데도 마땅한 방법이 생각나지 않아서 질문 게시판을 한번 들어가봤는데 흑색과 백색으로 나누라..
https://www.acmicpc.net/problem/1766 어떤 문제를 풀기전에 풀어야 하는 문제가 있기 때문에 이에 적합한 위상정렬을 사용해서 문제를 해결하였다.그리고 번호가 낮은 문제부터 풀어야 하기 때문에 위상정렬에서 사용하는 큐를 우선순위 큐로 바꾸고 낮은 번호부터 뽑히도록 하였다. #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;using int64 = long long;vector> graph;vector inDegree;int main() { ..