일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- MySQL
- 트라이
- string
- Keys
- 그래프 탐색
- branch
- 그리디
- vector insert
- HTTP
- ccw 알고리즘
- PROJECT
- 백준 1918번
- router
- ERD
- map
- 게임 서버 아키텍처
- trie
- 이분 탐색
- DP
- localstorage
- Prisma
- Github
- html5
- MongoDB
- 자바스크립트
- JavaScript
- Next
- pm2
- Express.js
- insomnia
- Today
- Total
목록전체 글 (131)
dh_0e

CCW 알고리즘CCW(Counter Clockwise)는 세 점의 방향 관계를 판별하는 알고리즘이다.주로 기하학적 문제에서 사용되며, 점 A, B, C가 있을 때 이 세 점이 시계 방향으로 배열되어 있는지, 반 시계 방향으로 배열되어 있는지를 판단한다.이를 통해 다각형의 내부에 점이 있는지, 선분이 교차하는지 등을 판별할 수 있다.원리벡터의 외적(cross product)을 이용하여 세 점의 방향을 결정한다.점 A, B, C의 좌표를 (Ax, Ay), (Bx, By), (Cx, Cy)라 할 때, 다음과 같은 수식을 사용한다.CCW 값 = (Bx - Ax) * (Cy - Ay) - (By - Ay) * (Cx - Ax)CCW 값 > 0: 점 A, B, C가 반시계 방향으로 배열되어 있음CCW 값 CCW 값..

rest parametersES6에서 도입되었으며 함수의 매개변수로 전달된 가변 개수의 인자를 배열 형태로 처리할 수 있는 기능함수 정의에서 사용되며 스프레드 연산자('...')를 매개변수로 사용하여 구현 (C와 동일)function exampleFunction(arg1, arg2, ...restArgs) { console.log(arg1); // 첫 번째 인자 console.log(arg2); // 두 번째 인자 console.log(restArgs); // 나머지 인자들 (배열 형태)}function sum(...numbers) { return numbers.reduce((acc, num) => acc + num, 0);}console.log(..

2022년 UCPC 예선 J번 문제로, 문제를 처음 읽고 나서 STL sort에 cmp 함수 만들어서 제약을 걸어주면 되는 거 아닌가?라는 생각에 쉽게 풀릴 것 같았지만 제약이 생각대로 걸리지 않았고, 다음과 같은 방법으로 해결했다. 해결 방법 (에드혹) 원래 배열을 정렬이 끝난 배열과 비교하는 과정에서 A(정렬 전 배열의 i번째에 있던 값)와 B(정렬 후 배열의 i번째에 있는 값)가 있다고 가정하자.A = B라면 위치가 변하지 않은 것으로 확인할 게 없이 넘어가면 된다.A ≠ B라면 B의 정렬 전 위치에 있던 수가 C라고 하자. C = A라면 A와 B의 위치가 바뀐 것이므로 A x B가 제곱수인지 확인하면 된다. 하지만 C가 A가 아니라면?A, B, C 모두가 다른 것은 A ↔ B, B ↔ C 이런 ..

1. 확인하고 싶은 라인에 코드 중단점을 찍는다여러 개 찍어도 되며, 디버깅 중간에 찍어도 상관없다.for문에 찍을 경우 반복문이 끝날 때까지 중단되므로, 식을 세워 내가 원하는 값일 때만 중단하게끔 설정할 수 있다. 2. 디버깅 시작 or F5 클릭, 환경은 Node.js로 선택 3. 변수 및 중단점 진행 과정 확인 조사식: 식을 추가하여 값을 알고싶은 데이터를 확인할 수 있음변수명에 식을 추가한 값도 확인이 가능 (monsterHp + 100)호출 스택: 호출이 진행된 경로가 스택 형식으로 확인할 수 있음로드된 스크립트: 코드가 실행되면서 로드된 스크립트 파일을 확인할 수 있음중단점: 모든 중단점을 확인할 수 있으며 활성/비활성, 추가/삭제를 할 수 있음 4. 디버깅 툴을 활용하여 디버깅을 진행..

동기화가 고려되지 않은 멀티스레드 코드 예시 (JAVA)public class CounterTest { private static int counter = 0; public static void main(String[] args) throws InterruptedException { Thread[] threads = new Thread[10]; // 동기화 없이 실행 for (int i = 0; i { for (int j = 0; j 위 코드를 실행시키면 counter 값이 10000이 아니라 그에 못 미치는 99xx 값이 나온다.이는 데이터 경합 즉, Race condition이 발생한 결관데 동시에 counter 변수의 값을..