일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 알고리즘
- 유니티
- 재귀
- binary_search
- 안드로이드
- unreal
- c#
- 운영체제
- BFS
- 웅진씽크빅
- 구현
- c++
- fsm
- 백준
- 이분탐색
- 시리얼라이제이션
- 이득우
- UI 자동화
- 개발일지
- upper_bound
- lower_bound
- 유한상태기계
- unity
- 너비우선탐색
- DFS
- 게임개발
- 인프런
- 게임개발공모전
- 프로그래머스
- 언리얼
- Today
- Total
목록Algorithm/Baekjoon (14)
초고교급 희망
그리디를 이용한 문제였다. 회의가 끝나는 시간이 빠른 기준으로 정렬한다. 회의가 끝나는 시간이 동일하다면 시작하는 시간이 빠른 기준으로 정렬한다. #include #include #include #include using namespace std; int n; pair conference[100005]; bool func(pair a, pair b) { if (a.second == b.second) { return a.first > n; for (int i = 0; i > conference[i].first >> conference[i].second; } sort(c..
찾고자하는 숫자가 얼마나 많이 있는지 구하는 문제였다. C++ STL에 있는 lower_bound와 upper_bound를 사용해도 좋지만 직접 구현하여도 좋다. 하지만 실제 시험에서는 제한 시간이 모자라거나, 긴장해서 실수할 수도 있기 때문에 STL을 쓰는 것이 더 좋을 것 같다. #include #include using namespace std; int n, m; int a[500001]; int lower_idx(int target, int n) { int st = 0; int ed = n; while (st < ed) { int mid = (st + ed) / 2; if (a[mid] < target) { st = mid + 1; mid = (st + ed) / 2; } else if (a[mi..
이분탐색을 이용한 문제였다. 이분탐색을 직접 구현해주어도 좋지만, STL에 있는 binary_search를 이용하여 빠르게 풀어주었다. 실제 코딩테스트에서는 시간이 부족한 경우가 많기 때문에 STL을 활용할 수 있다면 최대한 도움을 받고, 다음 문제를 풀러가는 것이 좋은 것 같다. 그리고 이분탐색 하기 전에 데이터 정렬하는 것 잊지 말기 #include #include #include using namespace std; int main() { int n, m; vector v; scanf("%d", &n); for (int i = 0; i < n; i++) { int temp; scanf("%d", &temp); v.push_back(temp); } sort(v.begin(), v.end()); sca..

#include #include #include using namespace std; bool map[101][101]; int n, k, l; // 보드 크기, 사과 개수, 방향 변환 횟수 int dx[4] = { 0,1,0,-1 }; int dy[4] = { 1,0,-1,0 }; bool apple[101][101]; int dir[10001]; int d; int main() { // 뱀은 큐. 뱀의 길이가 선입 선출 queue snake; cin >> n >> k; for (int i = 0; i > x >> y; apple[x][y] = true; } cin >> l; for (int i = 0; i < l; i++) { int x; string ..

#include #include #include #include using namespace std; int testcase, num; vector ans; void solve(int target, int sum, int sign, int prev, int idx, string expression) { if (idx == target) { sum += (prev * sign); if (sum == 0) { ans.push_back(expression); } return; } else { // + solve(target, sum + (prev * sign), 1, idx + 1, idx + 1, expression + '+' + to_string(idx + 1)); // - solve(target, sum..
#include using namespace std; int n, m; int room[51][51]; int dx[4] = { -1, 0, 1, 0 }; int dy[4] = { 0, 1, 0, -1 }; int start_x, start_y, start_d; int cnt = 0; int find_direction(int _d) { if (_d == 0) { return 3; } else { return _d - 1; } } void clean(int x, int y, int d) { if (room[x][y] == 0) { room[x][y] = 2; cnt++; } for (int i = 0; i < 4; i++) { int nd = find_direction(d); int nx = x + dx[..
#include using namespace std; bool whitepaper[101][101] = {0, }; int colorpapernumber, ans; void color(int x, int y) { for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { whitepaper[x + i][y + j] = true; } } } int areacalculate(bool graph[101][101]) { int area = 0; for (int i = 0; i < 100; i++) { for (int j = 0; j < 100; j++) { if (graph[i][j]) { area++; } } } return area; } int main()..