일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- programmers
- Linked list
- Trie
- 알고리듬
- Vue.js
- Data Structure
- JavaScript
- 알고리즘
- GitHub
- aws
- 시뮬레이션
- Algorithm
- gpdb
- 구현
- boj
- BFS
- CSV
- Bruth Force
- SWEA
- SQL
- 모의SW역량테스트
- Back tracking
- DFS
- django
- 코딩테스트
- Python
- 코테
- hash table
- spring boot
- Priority Queue
- Today
- Total
목록코딩테스트 (33)
hotamul의 개발 이야기
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=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: 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: 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]; ... /..
url: https://www.acmicpc.net/problem/20057 20057번: 마법사 상어와 토네이도 마법사 상어가 토네이도를 배웠고, 오늘은 토네이도를 크기가 N×N인 격자로 나누어진 모래밭에서 연습하려고 한다. 위치 (r, c)는 격자의 r행 c열을 의미하고, A[r][c]는 (r, c)에 있는 모래의 양을 www.acmicpc.net 풀이 핵심 1. 구현 / 시뮬레이션 문제 2. 미리 모래 날리는 비율, 왼/아래/오른/위 방향에 따른 모래 이동 위치 배열들을 생성해야 한다. // 토네이도 이동 배열 const int dy[] = { 0,1,0,-1 }; const int dx[] = { -1,0,1,0 }; // 비율 정보를 담고 있는 배열 const int ratio[9] = { 1,..
url: https://www.acmicpc.net/problem/15686 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net 풀이 핵심 1. Back Tracking 문제 2. home, chicken 백터 생성 (1일 경우 r, c home에 저장 / 2일 경우 r, c chicken에 저장) 3. solve 재귀 함수 구현 (전달 인자: 선택한 치킨집 개수 - cnt, 넣을 chicken집 인덱스 - idx) idx 가 chicken.size() 보다 크면 종료 cnt가 M 일 때 (선..