일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- qorwns
- 백준 17822
- AVL 시간 복잡도
- 백준 17471
- 백준
- 자료구조
- 시간 복잡도
- 백준 1158
- 구현
- 해시 구현
- ㅣ풀이
- 백준 17779
- 버킷 정렬
- 1764
- 스택의 특징
- 백준 5397
- 원판 돌리기
- Stack 이란
- 백준 1406
- c#
- 5397
- 게리멘더링2
- heap
- C/C++ 구현
- 조세퍼스 순열
- 별 찍기 10
- 백준 2447
- dfs
- 해시구현
- 풀이
- Today
- Total
목록알고리즘 문제풀이/swea (14)
홍시홍의 프로그래밍
분류 구현 요구사항 탈주범이 제한시간 동안 이동할 수 있는 파이프 수 구하기 풀이 기본적으로 bfs로 구현한다 조건은 현재 -> 다음 파이프로 이동할때 가능한가 확인한다 가능 하다면 visit +1 을 해준다 #include #include #include using namespace std; int n, m, r, c,l; int map[55][55]; int visit[55][55]; int dr[4] = { -1,0,1,0 }; int dc[4] = { 0,-1,0,1 }; int ans = 0; bool check(int dir,int next) { if (dir == 0) { if (next == 1 || next == 2 || next == 5 || next == 6) return true; ..
분류 : 구현 요구사항 핀볼 게임을 구현하고, 벽이나 블럭에 접촉하는 최대 횟 수 구하기 풀이 문제에 주어진 대로 구현하면 된다. 모든 정점에서 4방향으로 핀볼 게임을 실행해 본다. 웜홀은 무조건 2개가 주어지는데 vector에 넣어 지금 자신과 다른 정점의 값을 취해준다 종료 조건은 블랙홀에 빠지거나, 시작위치로 다시 돌아왔을때이다. #include #include #include using namespace std; struct go{ int x; int y; }; int n; int map[101][101]; vector v[11]; int dr[4] = {-1,0,1,0}; int dc[4] = {0,-1,0,1}; int ans=0; int Wall(int dir){ if(dir==0) retu..
분류 : 구현 요구사항 회사가 손실보지 않고 서비스를 제공해줄 수 있는 최대 집의 갯수 구하기 풀이 맨 처음에 구역의 모양을 보니 bfs처럼 생겨서 bfs로 풀었더니 시간초과가 나서 한참을 고민했다 1. 처음 시작할 때 거리를 먼저 정한다. 2. 연산을 시작할 정점을 정한다 3. 집~정점 까지의 거리가 1번에서 정한 거리 이내라면 서비스를 제공해줄 수 있는 집이다 이렇게 하면 쉽게 20*20*21*10라는 아주 작은 시간복잡도로 풀 수 있다. #include #include #include #include #include #include using namespace std; struct go{ int x; int y; }; int ans=0; int anshome=0; int n,m; int map[22..
분류 : 구현 요구사항 셀을 d개 골라서 시험 조건 만족시키기 풀이 구현해야 할 것은 크게 3가지 있다. 1. 어느 셀을 선택할 것인지(dfs) 2. 선택한 셀을 바꿔주기 3. 조건에 부합하는지 검사하기 1번만 시간복잡도에 맞게 구현한다면 크게 어렵지 않은 문제이다 #include #include #include #include using namespace std; int t; int n, m, k; int map[14][22]; int visit[22]; int ccnt = 0; int ans = 987654321; void change(int r, int num) { for (int i = 0; i < m; i++) { map[r][i] = num - 1; } } void solve(int cnt,i..