일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
- 분할축 이론
- 벡터
- uclidean algorithm
- AABB
- C++
- linux
- C
- c#
- 우분투
- 수학
- 충돌 알고리즘
- Vector
- 문제풀이
- 알고리즘
- Unity
- Graham Scan
- 내적
- 백준
- 리눅스
- PS
- ubuntu
- 다이나믹 프로그래밍
- dp
- GJK
- Doubly Connected Edge List
- 외적
- SOH
- Expanding Polytope Algorithm
- 보로노이다이어그램
- 유니티
- Today
- Total
목록분류 전체보기 (62)
마이 플밍 블로그
Mohitto55 Note Mohitto55 Note 모히또의 노트 mohitto55.github.io 깃허브 블로그 새로 생성했습니다. 많이 봐주세요.
1261번: 알고스팟 첫째 줄에 미로의 크기를 나타내는 가로 크기 M, 세로 크기 N (1 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 미로의 상태를 나타내는 숫자 0과 1이 주어진다. 0은 빈 방을 의미하고, 1은 벽을 의미 www.acmicpc.net 풀이 BFS로 풀고 flag로 벽을 부신 횟수를 넣으면 된다. 코드 #include using namespace std; int dx[4] = {1,-1,0,0}; int dy[4] = {0,0,1,-1}; int board[101][101]; int flag[101][101]; int n, m; int minAnswer = 1000000000; bool InMap(int x,int y){ if(0
18223번: 민준이와 마산 그리고 건우 입력의 첫 번째 줄에 정점의 개수 V와 간선의 개수 E, 그리고 건우가 위치한 정점 P가 주어진다. (2 ≤ V ≤ 5,000, 1 ≤ E ≤ 10,000, 1 ≤ P ≤ V) 두 번째 줄부터 E개의 줄에 걸쳐 각 간선의 정보 www.acmicpc.net 풀이 다익스트라를 이용해서 푼다. 1→P→N 순으로 가는 최단거리가 1→N 최단거리보다 작거나 같으면 SAVE HIM을 아니면 GOOD BYE를 출력한다 코드 #include #define V 5001 using namespace std; vector adj[V]; int n,e,p; int Dijkstra(int src, int nend){ vector dist(V, 100000000); dist[src] = ..
1504번: 특정한 최단 경로 첫째 줄에 정점의 개수 N과 간선의 개수 E가 주어진다. (2 ≤ N ≤ 800, 0 ≤ E ≤ 200,000) 둘째 줄부터 E개의 줄에 걸쳐서 세 개의 정수 a, b, c가 주어지는데, a번 정점에서 b번 정점까지 양방향 길이 존 www.acmicpc.net 풀이 1. 첫노드→N1 로가는 짧은경로 + N1 → N2로가는 경로 + N2에서 n번째노드로 가는 경로 2. 첫노드→N2 로가는 짧은경로 + N2 → N1로가는 경로 + N1에서 n번째노드로 가는 경로 둘중 짧은 것이 답이다. 코드 #include using namespace std; vector adj[801]; int n,e; int v1,v2; int Dijkstra(int src, int nend){ vecto..
11779번: 최소비용 구하기 2 첫째 줄에 도시의 개수 n(1≤n≤1,000)이 주어지고 둘째 줄에는 버스의 개수 m(1≤m≤100,000)이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스 www.acmicpc.net 풀이 다익스트라로 길을 저장하면서 풀면 된다. 코드 #include using namespace std; vector adj[1001]; int n,e; int nstart,nend; void Dijkstra(int src){ vector dist(1001, 100000002); dist[src] = 0; int path[1001]; priority_queue q; q.push(make_pair(0,src)); while(!q.em..
2234번: 성곽 첫째 줄에 두 정수 N, M이 주어진다. 다음 M개의 줄에는 N개의 정수로 벽에 대한 정보가 주어진다. 벽에 대한 정보는 한 정수로 주어지는데, 서쪽에 벽이 있을 때는 1을, 북쪽에 벽이 있을 때는 2를, www.acmicpc.net 풀이 비트연산자를 이용해서 방 구역 나누기 > 각 방 넓이 구하기 > 방 합치기 순으로 진행해서 풀었다. 코드 #include using namespace std; int board[51][51]; int room[51][51]; int roomArea[2505]; int roomNum = 1; int dx[4] = {0,0,-1,1}; int dy[4] = {-1,1,0,0}; int answer = 10000000; int h,w; int maxArea..
14442번: 벽 부수고 이동하기 2 첫째 줄에 N(1 ≤ N ≤ 1,000), M(1 ≤ M ≤ 1,000), K(1 ≤ K ≤ 10)이 주어진다. 다음 N개의 줄에 M개의 숫자로 맵이 주어진다. (1, 1)과 (N, M)은 항상 0이라고 가정하자. www.acmicpc.net 풀이 이전에 했던 1600 말이 되고픈 원숭이랑 비슷하게 풀었다. 남은 벽부수기 횟수에따른 flag를 배열을 만들고 남은거리를 저장했다. 코드 #include using namespace std; int board[1001][1001]; int flag[1001][1001][11]; int dx[4] = {0,0,-1,1}; int dy[4] = {-1,1,0,0}; int w,h,k; int answer = 10000000; ..
1600번: 말이 되고픈 원숭이 첫째 줄에 정수 K가 주어진다. 둘째 줄에 격자판의 가로길이 W, 세로길이 H가 주어진다. 그 다음 H줄에 걸쳐 W개의 숫자가 주어지는데, 0은 아무것도 없는 평지, 1은 장애물을 뜻한다. 장애물이 있 www.acmicpc.net 풀이 남은 나이트 이동 횟수에 따라 이동거리를 저장하는 배열을 만들어서 bfs로 풀었다 코드 #include using namespace std; int dhx[8] = {-2,-1,1,2,-2,-1,1,2}; int dhy[8] = {1,2,2,1,-1,-2,-2,-1}; int dx[4] = {0,0,-1,1}; int dy[4] = {-1,1,0,0}; int board[201][201]; int flag[201][201][31]; int ..