일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- gpdb
- 알고리즘
- hash table
- Data Structure
- aws
- spring boot
- CSV
- SWEA
- boj
- SQL
- JavaScript
- Bruth Force
- 알고리듬
- 모의SW역량테스트
- DFS
- django
- 구현
- Linked list
- 코테
- Algorithm
- 코딩테스트
- BFS
- Trie
- GitHub
- Vue.js
- Python
- Back tracking
- Priority Queue
- programmers
- 시뮬레이션
- Today
- Total
목록myt-algorithm-practice (59)
hotamul의 개발 이야기
url: http://jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=3561&sca=99 JUNGOL www.jungol.co.kr 풀이 핵심 1. 가장 가까우면서 나보다 크기가 작은 먹이를 찾는 방법을 구현하는 것이 중요하다. (BFS로 구현) 거리가 같을 경우 행 index가 작은 순서로, 행 index가 같을 경우 열 index가 작은 순서로 탐색해야 한다. 그리고 나보다 크기가 작은 먹이를 찾았다면 위치 및 거리를 return 해줘야 한다. 여기서 나보다 작은 먹이를 찾지 못했다면 프로그램을 종료한다. 거리가 같을 경우 / 행 index가 같을 경우를 고려해야 하므로 우선순위 큐를 사용했다. STL 큐는 sort에 사용할 수 없고 priority_queue를..

url: https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWXRF8s6ezEDFAUo SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 풀이 핵심 1. Back Tracking / Bruth Force 문제 (완전 탐색) 2. 벽을 만날 때 방향 전환을 어떻게 해주느냐가 핵심이다. 방향 배열을 다음과 같이 구성하면 그림에 표시된 주황색 방향과 같다. ... const int dy[] = { 1,0,-1,0 }; const int dx[] = { 0,-1,0,1 }; ... 코드 #define _CRT_SECURE_NO_WA..
ㅕurl: https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWXRQm6qfL0DFAUo SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 풀이 핵심 1. Back Tracking, Bruth Force 문제 (완전 탐색 문제!) 2. 두가지 함수만 잘 구현 하면 쉽게 풀 수 있다. - void shooting(int c) 함수 c 열에 구슬을 쏘아 벽돌을 제거하는 함수 target이라는 큐에 구슬을 맞춘 위치 (r, c)를 저장하고 상, 하, 좌, 우 제거 가능한 블록을 removal 배열에 표시한다. 그리고 제거할 블록 ..
url: http://www.jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=3549&sca=99 JUNGOL www.jungol.co.kr 기존에 풀었던 백준 문제와 동일한 문제이다. (https://hotamul.tistory.com/18) 기존에는 함수로 단순하게 구현했는데 뭔가 Class 처럼? (실제로 class를 만들어 풀지는 않았지만) 구현하고 싶어 struct ROBOT에 cleaning, left_turn, move, back_move 함수를 넣어 robot의 기능처럼 사용했다. 훨씬 가독성이 좋아진 느낌이다. 코드 #define _CRT_SECURE_NO_WARNINGS #include #include using namespace std; int R..
url: http://www.jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=3548&sca=99 JUNGOL www.jungol.co.kr 풀이 핵심 1. Back Tracking / Bruth Force 문제 (Blood Fill 방법? 으로 구현) 2. 초기 불 (2) 의 위치 정보를 vector fire에 저장 3. 초기 safe zone (0) 위치 정보를 vector safe_zone에 저장 4. 재귀 함수 solve 구현. 전달 인자는 safe_zone vector의 index와 벽을 만든 횟 수 cnt. 현재 index가 가르키는 safe zone을 벽으로 만들 거나 만들지 않거나 (만들지 않을 경우 cnt 는 증가 시키지 않고 index 만 증가 시켜..
url: http://jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=3547&sca=99 JUNGOL www.jungol.co.kr 풀이 핵심 1. BackTracking / Bruth Force 문제 (재귀 함수 완전 탐색) 2. 현재 날짜를 선택 하냐 / 안하냐 로 재귀 함수 만들어 주면 끝... 코드 #define _CRT_SECURE_NO_WARNINGS #include int N, ans; struct INFO{ int time, pay; }; INFO schedule[15]; // 수업 시간, 페이에 대한 정보 (index가 날짜, 0부터 시작) void solve(int day, int sum) { if (day == N) { // day가 N이라는 것..
url: http://jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=3543 JUNGOL www.jungol.co.kr BOJ 뱀 문제와 거의 같은 문제. (https://hotamul.tistory.com/17) 코드 #define _CRT_SECURE_NO_WARNINGS #include #include using namespace std; int N, M, D; bool map[100][100]; bool body[100][100]; int DIR[10000]; const int dr[] = { -1,0,1,0 }; const int dc[] = { 0,1,0,-1 }; struct POS { int r, c; }; deque worm; int solve() ..
SWEA 1249. [S/W 문제해결 응용] 보급로 문제 풀이 핵심 1. BFS 문제 2. 경로의 시간을 저장하는 check 배열을 모두 9 * 100 * 100 으로 초기화 한다. (9 * 100 * 100이 가장 큰 값) 3. 새로운 곳(nr, nc)에 방문 할 때 check[nr][nc] 보다 check[cur.r][cur.c] + map[nr][nc] 가 작을 경우에만 큐에 push 한다. 여기서 cur은 현재 위치 정보가 담긴 struct 이다. 코드 #define _CRT_SECURE_NO_WARNINGS #include #include using namespace std; int T, N; int map[100][100]; int check[100][100]; struct POS { int ..
url: https://www.acmicpc.net/problem/12100 12100번: 2048 (Easy) 첫째 줄에 보드의 크기 N (1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 게임판의 초기 상태가 주어진다. 0은 빈 칸을 나타내며, 이외의 값은 모두 블록을 나타낸다. 블록에 쓰여 있는 수는 2 www.acmicpc.net 풀이 핵심 1. 완전 탐색 문제 (Bruth Force / Back Tracking) 2. map을 반시계 방향으로 (시계 방향인지 반시계 방향인지는 중요하지 않음) 회전시키는 함수와 위로 이동시키는 함수를 구현한다. (상 하 좌 우로 이동시키는 함수를 각각 구현하기는 번거롭기 때문) 3. 문제에서 가장 중요한 것은 이동시키는 함수를 어떻게 구현하는 것이냐 이..
url: https://www.acmicpc.net/problem/13460 13460번: 구슬 탈출 2 첫 번째 줄에는 보드의 세로, 가로 크기를 의미하는 두 정수 N, M (3 ≤ N, M ≤ 10)이 주어진다. 다음 N개의 줄에 보드의 모양을 나타내는 길이 M의 문자열이 주어진다. 이 문자열은 '.', '#', 'O', 'R', 'B' www.acmicpc.net 풀이 핵심 1. 최소 구슬을 굴리는 (기울이는) 횟수 구한는 문제 --> BFS로 풀이 2. 빨간 구슬, 파란 구슬의 시작 위치를 red_sr, red_sc, blue_sr, blue_sc 에 저장한다. 3. 4차원 배열인 check 배열을 활용해 중복 방문을 방지 한다. ... bool check[10][10][10][10]; ... /..