일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Linked list
- 구현
- Back tracking
- BFS
- Data Structure
- hash table
- 시뮬레이션
- gpdb
- Algorithm
- Priority Queue
- CSV
- programmers
- django
- SQL
- Python
- 코딩테스트
- Bruth Force
- aws
- SWEA
- Vue.js
- 알고리듬
- DFS
- boj
- 알고리즘
- spring boot
- 모의SW역량테스트
- GitHub
- 코테
- JavaScript
- Trie
- Today
- Total
목록boj (42)
hotamul의 개발 이야기
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: 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 일 때 (선..
url: https://www.acmicpc.net/problem/19237 19237번: 어른 상어 첫 줄에는 N, M, k가 주어진다. (2 ≤ N ≤ 20, 2 ≤ M ≤ N2, 1 ≤ k ≤ 1,000) 그 다음 줄부터 N개의 줄에 걸쳐 격자의 모습이 주어진다. 0은 빈칸이고, 0이 아닌 수 x는 x번 상어가 들어있는 칸을 의미 www.acmicpc.net 풀이 핵심 1. 구현 / 시뮬레이션 문제 2. 상어의 위치, 방향, 우선 순위 방향 정보를 저장하는 shark 배열을 만든다. (배열의 인덱스가 상어의 고유 번호 이다.) 3. 상어가 죽었다는 것은 상어의 방향이 -1일 경우로 한다. M 개의 상어를 탐색하며 상어의 현재 자리에 냄새를 남긴다. 냄새는 smell 배열에 상어의 고유 번호, 현재 ..
na982님 풀이 참고 https://na982.tistory.com/123 [삼성 SW 역량 테스트] 주사위 윷놀이 #include const int board[33][6] = { {0,1,2,3,4,5}, {2,2,3,4,5,6}, {4,3,4,5,6,7}, {6,4,5,6,7,8}, {8,5,6,7,8,9}, {10,21,22,23,24,25}, {12,7,8,9,10,11}, {14,8,9,10,11,12}, {16,9,10,11,12,13}, {18,10,11.. na982.tistory.com 코드 #define _CRT_SECURE_NO_WARNINGS #include const int board[33][6] = { {0,1,2,3,4,5}, {2,2,3,4,5,6}, {4,3,4,5,6,7..
url: https://www.acmicpc.net/problem/19236 19236번: 청소년 상어 첫째 줄부터 4개의 줄에 각 칸의 들어있는 물고기의 정보가 1번 행부터 순서대로 주어진다. 물고기의 정보는 두 정수 ai, bi로 이루어져 있고, ai는 물고기의 번호, bi는 방향을 의미한다. 방향 bi는 www.acmicpc.net 풀이 핵심 1. Bruth Force + 시뮬레이션 / 구현 문제 2. shark라는 struct를 만들어 문제를 해결한다. shark struct는 다음과 같은 변수, 함수로 구성된다. 현재 상어의 위치 (R, C), 방향 (D), 먹은 물고기 번호의 합 (cnt) 물고기의 ID를 저장하는 map[4][4] 배열 물고기의 위치, 방향, ID를 저장하는 fish 배열 (..
url: https://www.acmicpc.net/problem/17142 17142번: 연구소 3 인체에 치명적인 바이러스를 연구하던 연구소에 승원이가 침입했고, 바이러스를 유출하려고 한다. 바이러스는 활성 상태와 비활성 상태가 있다. 가장 처음에 모든 바이러스는 비활성 상태이고 www.acmicpc.net 풀이 핵심 1. Bruth Force + BFS 문제 2. blank 변수에 빈칸 (0)의 개수를 저장 한다. 3. virus를 활성화 시킬 수 있는 장소(2)의 위치 (r, c) 를 virus 배열에 저장한다. (virus_size 변수에 virus 배열 장소 개수도 같이 저장) 4. 활성화 위치를 저장할 vector picked를 생성하고 재귀 형식의 dfs 함수에 전달한다. dfs 함수는 v..
url: https://www.acmicpc.net/problem/20055 20055번: 컨베이어 벨트 위의 로봇 길이가 N인 컨베이어 벨트가 있고, 길이가 2N인 벨트가 이 컨베이어 벨트를 위아래로 감싸며 돌고 있다. 벨트는 길이 1 간격으로 2N개의 칸으로 나뉘어져 있으며, 각 칸에는 아래 그림과 같이 1부 www.acmicpc.net na982님 풀이 참고 https://na982.tistory.com/131 [삼성 SW 역량 테스트] 컨베이어 벨트 위의 로봇 컨베이어 벨트 위의 로봇 강의 컨베이어 벨트 위의 로봇 코드 #include int N, K; int A[200]; int solve() { int ret = 0; int zero_count = 0; int robot[200 * 1000];..