일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 백트래킹
- XR Interaction Toolkit
- 그래프
- 자료구조
- 재귀
- 다이나믹 프로그래밍
- 시뮬레이션
- 스택
- 유니온 파인드
- VR
- 누적 합
- 문자열
- DFS
- 알고리즘
- c++
- 다익스트라
- 백준
- Team Fortress 2
- BFS
- 그리디 알고리즘
- 정렬
- ue5
- 트리
- Unreal Engine 5
- 수학
- 구현
- 우선순위 큐
- 유니티
- 투 포인터
- 브루트포스
- Today
- Total
목록구현 (132)
1일1알

0부터 비교하면서 켜지지 않아야 할 곳에 불이 켜져있으면 넘어가고 모두 꺼져있다면 그 번호로 만들 수 있다. #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using ll = long long; vector nums(10, vector(15, true)); vector v(4, vector(15, true)); void Init() { nums[0][4] = false; nums[0][7] = false; nums[0][10] = false; nums[1][0] = false; nums[1]..

수직으로만 지난 곳은 1, 수평으로만 지난 곳은 2, 수직 수평 모두 지난 곳은 3으로 저장하고 상황에 맞게 구현하였다. #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using ll = long long; int dRow[4] = { -1,0,1,0 }; int dCol[4] = { 0,1,0,-1 }; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int n; cin >> n; vector boa..

k의 범위가 1~2이기때문에 바닥의 크기는 2 혹은 4이다. 바닥의 크기가 크지 않기 때문에 백트래킹을 이용해서 모든 경우를 탐색하여 문제를 해결하였다. #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using ll = long long; int dRow[8][2] = { {0,1}, {0,-1} ,{1,1} ,{1,1} ,{0,-1} ,{0,1} ,{-1,-1} ,{-1,-1} }; int dCol[8][2] = { {1,1}, {1,1}, {0,1}, {0,-1}, {-1,-1}, {-1..

2차원 배열로 육각형 타일을 직접 구현하였다. ↗↑↖↙↓↘의 패턴이 처음엔 각각 ( 1, 0, 1, 1, 1, 1) 의 횟수만큼 나타나고 1씩 증가한다. 두 번째엔 (2, 1, 2, 2, 2, 2) 만큼, 세 번째엔 (3, 2, 3, 3, 3, 3) ... 이런 식으로 나타난다. 이걸 잘 구현해서 문제를 해결하였다. n이 50일 때 출력한 모습이다. #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using ll = long long; int dRow[6] = { -1,-2,-1,1,2,1 }..

단위분수의 분모를 정하는 것이 이 문제의 핵심인 것 같다. 분모에서 분자를 나눈 값의 나머지가 0이라면 분모 / 분자 를 다음 단위분수의 분모로 하였고, 0이 아니라면 (분모 / 분자 ) + 1 을 다음 단위분수의 분모로 정하였다. 첫번째 예제로 예를 들자면 23 / 4 = 5 ... 3 이기 때문에 다음 단위분수의 분모는 5 + 1 = 6 이고 1 / 6 과 4 / 23 을 통분하면 23 / 138 과 24 / 138 이 된다. 이렇게 구하는 것이 분자 / 분모 보다 작은 단위분수 중 가장 큰 값 이라고 생각했다. 만약 단위분수의 분모를 그냥 1씩 증가시키면서 계산을 한다면 시간초과가 날 것이다. 그리고 오버플로우도 조심해서 풀어야 한다. #include #include #include #include..

1. 내 아두이노를 방향에 맞게 이동시킨다. 이때, 이동한 곳에 미친 아두이노가 있으면 종료한다. 2. 미친 아두이노를 내 아두이노의 거리가 가장 짧게 되는 지점으로 이동시킨다. 3. 모든 미친 아두이노를 이동시킨 뒤 한 공간에 두 개 이상의 미친 아두이노가 있으면 그 공간에 있는 모든 아두이노를 없앤다. 4. 미친 아두이노가 내 아두이노와 만났다면 종료한다. #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using ll = long long; int r, c; string moveStr; int dRow[..