일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- /
- 도커 #docker #docker-compose.yml #도커컴포즈 #배포 #spring #mysql #docker-compose
- chatgpt #gpt #챗지피티 #ai
- 도커 #Docker #배포 #Spring #MySQL #백엔드배포
- Today
- Total
목록분류 전체보기 (98)
개발자 데뷔!
구현, 시뮬레이션 삽질한 부분 1. init 함수 따로 없이 memset을 필요한 부분에 배치해 초기화 - move_cloud() 함수 : newCloud 배열 초기화 - create_cloud() 함수 : Cloud 배열 초기화 2. 이동방향은 미리 vector에 입력받아 저장하고, move_cloud()함수에 몇번째 입력을 사용할 것인지 함수파라미터로 받아야함 3. 범위밖의 방향 보정 -> 행,열의 시작-끝을 이음 (범위밖으로 벗어날시 index 0으로 다시 옮김) * (nr + N)%N으로 할시 오류발생 !! *** -로 할 시 나머지값 (index)가 오염됨 100은 명령횟수 M의 최댓값 기준 nr = (nr + N*100) % N; nc = (nc + N*100) % N; 4. 첫 구름위치 미리..
구현, 시뮬레이션, 그래프탐색, DFS, BFS 삽질한 부분 1. 주사위 이동함수 test 시, 시작 위치가 0,0이라 서쪽, 북쪽으로 이동할땐 방향이 반대로 바뀌어 나오는데, 이를 인지하지 못하고 주사위 roll함수를 잘못짠 것이라 생각해 계속 들여다봄 2. 시계, 반시계 방향 회전 편하도록 처음부터 direct 배열 순서대로 저장 3. 그래프 탐색 simulation 에, - break 문이 안들어감(level이 따로 안 정해져있어 break이 따로 없음) - path를 사용하지만, 수가 같은 모든 곳을 기록해야 하기 때문에 => 재귀호출 후 다시 해제하지 않고 모두 저장 - used를 사용하지만, 재귀 호출 후 나올때 다시 used를 해제 하진 않음 => 해제하면 왔던길 중복체크되어 추가로 더해짐 ..
구현, 시뮬레이션, 백트래킹 삽질한 부분 1. 물고기 배열은 [vector fish[4][4]]로, 2차원 배열 각각을 vector로 정의 하면, 여러마리 물고기의 방향을 한꺼번에 저장할 수 있다. (냄새는 따로 저장) (해당 칸의 물고기 수는, fish[i][j].size()로 접근) 2. '물고기의 냄새'가 흐려지는 시점을 잘 파악해야 한다! (상어가 물고기 죽인 후) 3. 이미 방문했던 used칸을, 다시 방문하는 경우가 상어의 최적경로 일 수 있다! 4. 상어가 방문한 모든칸 (X), 방문한 칸 중 물고기 있던 칸 (O) 에만 냄새가 남는다.(if문 사용) 5. 물고기가 모든 방향(8가지)를 탐색하고도 갈곳이 없는경우, 그자리에 가만히 있는다.(new_fish에 추가) TIL 1. 속도 개선 방법..
2차원 벡터 선언 vector parsed; 2차원 벡터 선언 (크기지정) 2차원 벡터를 선언 vector 하고, (행 크기, 열 크기) 형식으로 크기도 함께 지정해줘야 한다. 이 때, 행의 구성 자체가 1차원 vector로 이루어지므로, '열 크기'는 1차원 벡터를 크기선언 하듯 vector (N) 자체로 선언해줘야 한다. board = vector(N, vector(N)); 1차원벡터 선언(크기지정) board = vector(N); 2차원 벡터 사용 (크기 지정 안되어있을 시) 크기 지정이 안되어있다면, 메모리 할당이 안되어있는 상태이다. 그 상태로 바로 index로 접근(parsed[i]) 하는 것은 불가능 하므로, 바로 값을 입력(parsed[i].push_back)하면 에러가 발생한다. 그러므..
// 그래프의 화살표를 배열로 표시 !! // 행(col)은 (화살표가 가리키는 사람) // 렬(row)는 화살표 몇개 받았는지 세는 데 씀 !! 단순 그래프 [인접행렬] EX) // Level 28 // 1번`// 인접행렬 **** int main() { char names[5][10] = { "Amy","Bob","Chloe","Diane","Edger" }; // 화살표를 배열로 표시 !! (좋아하면 1 ) // 행(col)은 내가 좋아하는 사람 (화살표 가리키는 사람) // 렬(row)는 화살표 몇개 받았는지 세는 데 씀 !! int arr[5][5] = { 0,1,0,0,0, 0,0,1,1,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,0,0,0 }; int maxidx = 0, count..
구조체로 포인터 사용 시 *(p.a) 또는 *p.a 안됨 !!! p->a 로 바꾸어 사용 !!!! [일반] 구조체 멤버에 접근 struct.a [포인터] 구조체 멤버에 접근 struct->a EX) // 2번 // 구조체 + 포인터 문제 !!!! int main() { struct robot { int a, b; string t; }; // 포인터로 구조체를 가리킴 robot robert; robot* p; p = &robert; cin >> robert.a >> robert.b >> robert.t; cout a + p->b x = 5;// b.x = 5// 포인터 로 struct의 member에 접근할 때는 화살표 -> 사용 !! // c.x = 4 a.next->next = &c;// b.next ..
Shift Left / Shift Right // Level 23.5 //1번 int arr[5] = { 3,5,1,9,7 };// Shift Left, Shift Right 정리 해놓음 !! void belt(char A) { int tmp; // Shift Right if (A == 'R') { //swap tmp = arr[4];// 마지막 문자 미리 저장 for (int i = 3; i >=0; i--) { arr[i + 1] = arr[i]; } arr[0] = tmp; } // Shift Left else if (A == 'L') { //swap tmp = arr[0];// 첫번째 문자 미리 저장 for (int i = 0; i < 4; i++) { arr[i] = arr[i+1]; } arr..
재귀사용 기본 // Level 21 //3번 void recur(int level, int branch, int LV) {// level, branch는 입력받은 값 //LV 은 현재 상황 // level은 트리의 깊이 (몇번이나 재귀 안으로 깊숙히 들어가는가) if (LV == level) return; // branch는 가지의 개수 (재귀가 몇번이나 반복되는가 ) for (int i = 0; i > level >> branch; // 재귀실행 recur(level,branch,0); } Path 추가 // Level 22 //3번 int path[10];..