일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- Trie
- 구현
- 모의SW역량테스트
- spring boot
- Back tracking
- Algorithm
- programmers
- BFS
- aws
- SWEA
- 코딩테스트
- 시뮬레이션
- GitHub
- gpdb
- 알고리듬
- hash table
- boj
- SQL
- Linked list
- Data Structure
- CSV
- Bruth Force
- django
- Vue.js
- Python
- JavaScript
- 알고리즘
- DFS
- Priority Queue
- 코테
- Today
- Total
목록myt-algorithm-practice (59)
hotamul의 개발 이야기
url: https://www.acmicpc.net/problem/3190 3190번: 뱀 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임 www.acmicpc.net 풀이 핵심 1. 기존에는 stack + queue 로 풀이했다면 이번에는 double linked list를 이용해 풀이해보고자 한다. double linked list를 사용하는 이유는 꼬리를 자르는 경우 (꼬리를 잘라야 하는 경우 꼬리의 이전(post)이 꼬리가 되게 하고 꼬리를 잘라야 한다) 때문에 그렇다. 2. SNAKE 구조체와 make, cut_tail 함수를 다음과 같이 만들어 준다..
url: https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net 풀이 핵심 1. 본 문제는 bfs 문제로 head 만을 이용한 linked list로 쉽게 풀 수 있다. 기본적으로 list의 들어오는 순서가 중요한 경우가 많으므로 이번엔 tail을 가지고 있는 linked list로 풀이해보고자 한다. 풀이에 대한 내용은 head만을 이용한 linked list 링크를 참조하자 2. head, tail을 가지고 있는 linked list 구조체 struct..
Linked List 활용 문제 (문제 풀이들은 Pro = B형 시험 준비자들을 위한 것으로 dfs/bfs에 대한 설명은 따로 하지 않았다) 1. linked list를 활용한 bfs/dfs 문제 풀이 pb.url: https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net 2. linked list를 활용한 bfs/dfs 문제 풀이 pb.url: https://www.acmicpc.net/problem/1707 1707번: 이분 그래프 입력은 여러 개의 테스..
url: https://www.acmicpc.net/problem/1707 1707번: 이분 그래프 입력은 여러 개의 테스트 케이스로 구성되어 있는데, 첫째 줄에 테스트 케이스의 개수 K가 주어진다. 각 테스트 케이스의 첫째 줄에는 그래프의 정점의 개수 V와 간선의 개수 E가 빈 칸을 사이에 www.acmicpc.net 풀이 핵심 1. dfs/bfs 문제 2. 문제는 매우 간단하지만 Pro 시험에서 Linked List 자료구조는 필수로 구현할 줄 알아야 하므로 Linked List를 이용해 풀이해보고자 한다. 이 문제는 바이러스 문제와 달리 초기화를 해줘야 한다. linked list 구현은 바이러스 문제와 같고 (Tail 포인터를 사용하지 않고) 초기화 함수만 추가된 것이다. 3. linked lis..
url: https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net 풀이 핵심 1. bfs 문제 2. 문제는 매우 간단하지만 Pro 시험에서 Linked List 자료구조는 필수로 구현할 줄 알아야 하므로 Linked List를 이용해 풀이해보고자 한다. 3. Linked List는 추가 연결이 필요할 때 연결 끝 부분 (Tail) 에 추가해줘야 하는 경우, 즉 list의 연결 순서가 중요할 경우 tail을 알 수 있도록 해서 tail 다음에 추가로 노드 연결..
url: https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWXRDL1aeugDFAUo SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 코드 #define _CRT_SECURE_NO_WARNINGS #include #define MAXM 100 #define MAXA 8 #define a 0 #define b 1 int T, M, A; int move_cmd[2][MAXM + 1]; const int dr[] = { 0,-1,0,1,0 }; const int dc[] = { 0,0,1,0,-1 }; struct BCInfo..
url: https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWIeW7FakkUDFAVH SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 풀이 핵심 1. 높이 차이가 2 이상 나는지 확인해주기, 내리막길 + 오르막길 일 경우 경사로가 중복인지 확인하기 이 두가지만 잘 확인해준다면 쉽게 풀 수 있다. 2. 행/열을 각각 체크해주려면 경사로 중복 배열을 행 체크 후 다시 초기화시켜줘야 하므로 행 체크만 할 수 있도록 입력에서 처리해준다. (따라서 행을 2 * N번 체크해줘야 함) ... scanf("%d", &map[r][c])..
url: https://swexpertacademy.com/main/code/problem/problemDetail.do SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 풀이 핵심 1. 완전 탐색 문제 2. 제한 시간 초과를 피하기 위해 cache[50][50][4] 배열을 만들어 두는 것이 필요하다. MAXN (50) * MAXN + 1 로 cache 배열을 초기화 하고 최초 방문일 경우 현재 r, c (행, 열), dir (방향)인 cache[r][c][dir]에 현재까지의 파이프 길이를 저장한다. 중복 방문 했을 경우 현재의 길이가 저장 된 길이보다 크다면 return 하는 방식으로 가지치지 한다. 3. ..
url: https://swexpertacademy.com/main/code/problem/problemDetail.do SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 풀이 핵심 1. Back Tracking, Bruth Force 문제 (완전 탐색) D_C_x (Combination, D개의 행 중 x개 선택) 2^x (x개가 A 또는 B로 약물 투입하는 경우) D*W (W개의 열에서 연속된 수 찾는 경우) D_C_x * 2^x * D * W ~= 대략 4억 (완전 탐색 가능) 2. struct Film을 만들고 성능을 검사하는 (check) 함수와 약물 투입 함수 (dosage) 를 만든다. - check..
url: https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PpLlKAQ4DFAUq SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 풀이 핵심 1. BFS 문제 2. 큐에 push 할 때 조건 (터널이 연결되어 있음) 을 잘 구현해야 한다. 먼저 터널 종류에 따른 방향 정보가 담긴 dr[7 + 1][4], dc[7 + 1][4] 배열을 미리 만들어 준다. 이 때 행은 터널 구조물 타입을 의미한다. 따라서 맵을 탐색하며 map[r][c] 에 0이 아닌 수가 들어 있다면 터널이 연결되어 있는지를 확인한다. 터널이 연결되어 ..