일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 코테
- 알고리즘
- English
- the midnight library
- D4
- 프로그래머스
- MySQL
- STUDYENGLISH
- BFS
- 쉬운 알고리즘 문제
- 백준
- sw expert
- dfs
- PyQt
- nightroutine
- 알고리즘 문제
- 직무면접
- 원서읽기
- SQL
- sw expert academy
- 삼성
- 완전탐색
- 코테 준비
- 코테 대비
- swexpertacademy
- 원서읽자
- 원서
- 코딩테스트
- englishbook
- readingbook
- Today
- Total
목록알고리즘문제 (4)
시나브로
#include #include #include using namespace std; typedef struct node { int i; int j; }; vector list = { {0,0,0,0},{0,1,0,0},{0,1,0,1},{1,1,0,0}, {1,1,0,1},{1,1,1,1} }; int dx[] = {-1,0,1,0 }; int dy[] = {0,1,0,-1 }; int N, M; int max_check; vector shift(vector i) { vector k; k.push_back(i[3]); k.push_back(i[0]); k.push_back(i[1]); k.push_back(i[2]); return k; } void dfs(vector map, int check, que..
이 문제는 전형적인 DFS/BFS 완전탐색 문제이다. Solution 값을 입력 받는다. 여기서 값이 1인 인덱스를 벡터 stack에 입력한다. 벡터 stack이 빌때까지 while문을 돌면서 dfs 함수를 호출한다. 호출할 때는 새로운 단지를 발견한 것이기에 answer함수에 새로운 단지를 찾았다는 뜻으로 push_back으로 값을 넣어준다. dfs함수에서는 4방향을 보며 1일 경우, 재귀호출을 해준다. => 여기서 유의점은 범위체크이다. 인덱스가 배열을 범위를 넘어서면 무조건 오류가 나기때문에 귀찮더라도 범위체크를 해줘야한다. 재귀호출하면서 집의 갯수를 세야된다. 그렇기에 새로운 집에 방문할때마다 answer의 마지막 요소에 +1를 해준다. 여기서 왜 마지막 요소인가하면, 동시에 여러단지를 검색하지않..
1. skill에 있는 알파벳을 배열에 체크한다. 체크할 때 순서로 표시한다. 2. 각 스킬트리를 보면서 skill에 있는 알파벳이 나오면 순서를 체크하면서 한다. #include #include using namespace std; int solution(string skill, vector skill_trees) { int alpha[30] = { 0 }; for (int i = 0; i < skill.length(); i++) { alpha[skill[i] - 'A']=i+1; } int count = 0; for (int i = 0; i < skill_trees.size(); i++) { int memory = 0; int fail = 0; for (int k = 0; k < skill_trees..
각 시점마다 오름차순인지 내림차순인지 확인해서 이전꺼와 다르다면 새로운 묶음으로 본다는 것에서 포인트를 얻어서 풀었다. #include #include #include #include using namespace std; int list[100010]; int signal = -1; void search_signal(int i) { if (list[i] list[i+1]) { signal = 2; } else { signal = 0; } } int main(void) { freopen("inp.inp", "r", stdin); freopen("out.out", "w", stdout); int tc = 0; cin >> ..