일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 스택의 특징
- Stack 이란
- 백준 17471
- 1764
- 백준 17822
- 5397
- 백준 1158
- 백준
- 해시 구현
- 별 찍기 10
- c#
- 백준 5397
- 자료구조
- 게리멘더링2
- AVL 시간 복잡도
- heap
- 시간 복잡도
- 백준 1406
- C/C++ 구현
- 백준 17779
- ㅣ풀이
- 구현
- 버킷 정렬
- 풀이
- 원판 돌리기
- 조세퍼스 순열
- dfs
- 해시구현
- 백준 2447
- qorwns
- Today
- Total
목록알고리즘 문제풀이/백준 (178)
홍시홍의 프로그래밍
분류 : 시뮬레이션 요구사항 돌과 킹의 마지막 위치 구하기 풀이 1. 킹을 움직인다 2. 킹 자리에 돌이 있는지 확인한다 3. 돌도 킹과 같은 방향으로 움직여 준다 4. 범위 확인한다 5. 위치를 조정한다 돌이 없을 경우는 킹 움직이고, 범위 체크하고 킹 위치 조정한다 #include #include #include #include #include #include using namespace std; int map[10][10]; string king; string rock; int kr, kc; int rr, rc; int n; int dr[10] = { -1,-1,-1,0,1,1,1,0 }; int dc[10] = { -1,0,1,1,1,0,-1,-1 }; int change_Alpha(char ch..
분류 : dfs 요구사항 K진 트리에서 주어진 두 숫자 간의 거리 구하기 풀이 이진 트리에서 자식은 node*2, 부모는 node/2이다 3진 트리는 1 2 3 4 5 6 7 4진 트리는 1 2 3 4 5 6 7 8 9 5진 트리는 1 2 3 4 5 6 7 8 9 10 11 자식은 node*k+1까지가 자식이다 부모는 (node+(k-2))/k이다 (k-2)인 이유는 node*k+1까지가 자식이기 때문이다 #include #include #include #include #include using namespace std; typedef long long ll; ll n, k, q; ll parent(ll x, ll y) { return (x + y - 2) / y; } int main() { scanf(..
분류 : bfs 요구사항 명령을 최소로 하여 start 지점에서 end 지점까지 이동하기 풀이 bfs문제 인데 visit 배열을 2개를 사용하였다 하나는 1~3까지 이동하는 visit배열이고, 하나는 현재 칸에서 회전하는 visit배열이다 주의 할점 현재 방향이 1이라면 180도 이동하였을때는 cnt가 2증가한다 그리고 q가 빌때까지 돌려줘야 하는것이다 바로 출력하면 최소가 아닌 답을 출력한다 #include #include #include using namespace std; struct go { int x; int y; int dir; int cnt; }; int n, m; int sr, sc, sdir; int er, ec, edir; int map[110][110]; int visit[110][1..
분류 : bfs 요구사항 최소로 거울을 설치하여 시작점에서 도착점으로 이동할 수 있는 거울의 개수 풀이 일반적인 bfs는 visit배열에 방문 여부를 저장하는데 이 문제는 visit배열에 방향을 바꾼 횟수를 저장한다 문제에서 거울을 만나면 방향을 바꾼다고 햇으니 모든 map에 대해 최소의 visit배열을 구하면 답을 구할 수 있다 C두개중 하나는 시작점 나머지는 도착점으로 설정한다 시작할때는 모든 방향에 대해서 방향을 변경한거로 조건을 주어야한다 //0일때는 무조건 1 증가 if (cnt == 0) { NminC = minC + 1; } #include #include using namespace std; int n, m; char map[110][110]; int dr[4] = { -1,0,1,0 };..