Home

실전 문제풀이(누적합)

11660번 (구간 합 구하기 5) 출처: 백준 난이도: 실버 1 누적합이라는 새로운 방식의 접근법과, 2차원 그래프에서의 인덱스 문제(0에서 시작할지 1에서 시작할지)등에서 많이 깨졌다.. 여러모로 다시 봐야 할 유형이다. 처음에는 0,0을 시작지점으로 잡고 문제를 풀려고 했는데 테스트케이스에서 x1, y1 좌표를 (1, 1)로 주는 순간 리스트의 인덱스가 -1로 접근해서 내가 원하는 결과가 나오지 않게 되었다. 해당 문제는 위 그림과 같이 0으로 저 부분을 둘러쌓아주면 해결이 가능하였다. import sys input = sys.stdin.readline N, M = map(int, input...

Read more

Bit 연산

코딩을 하면서 Bit Operator가 유용하게 쓰이는 경우가 많은데 이를 잘 활용하지 못하고 있는것 같아 정리해보려고 한다. Bit shift 연산 정수를 2배로 곱하거나 나누어 계산해 주는 경우에 활용 가능하다. 1 << 3, 7 << 2 (8, 28) shift 연산자 뒤의 값 n이 \(2^n\)을 의미한다는 것을 기억하자. 1 << 3 -> \(1 \times 2^3\), 7 << 2 -> \(7 \times 2^2\)

Read more

Patchcore

논문 이해를 위한 Source ysco님 블로그 Method Make a memory bank of patch features Memory bank: 쓰는 이유: middle level of feature 들을 사용하기 위함 Reduce the memory bank with coreset Detect anomaly with the memory bank 수식 이해 \[\phi_{i, j} = \phi_j(x_i) \in R^{c^* \times h^* \times w^*}\] \(\phi_{i, j}\)는 결국 Pretrained mod...

Read more

ASCII

print(ord('a')) print('a') print(97) print(hex(97)) 97 a 97 0x61 Python 인터프리터에서 위와 같이 코드를 입력했을 때 컴퓨터는 ‘a’에 대해서는 ‘a’라고 콘솔창에 출력하고 ‘a’를 의미하는 수 97에 대해선 97로 표현한다. 컴퓨터 입장에선 내가 ‘a’로 입력하던지, 97로 입력하던지 모두 97이라는 number로 보일텐데 어떻게 출력할 때 구분 지을 수 있는지가 궁금하였다. 답변은 StackOverFlow 에서 얻을 수 있었다. 핵심은 compiler였다. compiler를 통해 특정 메모리 주소의 값에 대한 데이터 Type에 대한 코드를 어셈...

Read more