2022/09

PS/boj

BOJ)1915 - 가장 큰 정사각형

정사각형의 조건 검사하자는 걸로 접근: 정사각형 한 변의 길이가 짝수, 홀수로 구분하여 정사각형의 중심을 기준으로 생각, 가능하려면 적어도 인접한 두 지점이 1이어야 함. 중간까지 시도 하다가 너무 복잡해지고 접근을 잘못한 거 같단 생각 들고 못 품. 다른 답변 보고 제출했는데 나중에 비슷한 문제 똑같이 풀 수 있을지 모르겠음.. 변의 길이가 1 보다 큰 정사각형 안에는 그보다 작은 정사각형이 있음. dp 생각, 점화식 세우기 dp(i, j) = i, j 를 우하단으로 하는 정사각형의 최대 변 길이 dp(i, j) = min(dp[i][j - 1], dp[i - 1][j], dp[i - 1][j - 1]) + 1 n, m = map(int, input().split()) board = [input() f..

일상

청계산 등산 원터골-매봉, 옥녀봉 다녀왔어요.

청계산 원터골 입구에서 매봉 갔다 오는데 3시간 정도 걸린 것 같아요. 중간에 좀 쉬고 정상에서도 좀 쉬었어요. 개인 취향으로는 별로 였어요. 계단만 많은 느낌. 그래도 집에서 가까워서 가끔 생각나면 또 갈 것 같아요. 산에 젊으신 분들이 많더라구요. 덕분에 사람 구경 좀 했어요. 두부집은 청계산역 근처에 있는 리숨두부라는 곳인데 먹을만한 거 같아요. 나름 기다렸답니다. 그 다음 주에 옥녀봉도 다녀왔어요. 시간은 왕복 1시간 정도 걸린 거 같아요. 시작 부분에서 맨발의 고수를 만났는데 따라가고 싶어서 따라가다가 너무 빨라서 못 쫓았어요. 뛰거나 산 탈때 이렇게 낙오된 적 없는데 초고수였어요. 승부욕 생겼음. 그래도 덕분에 빨리 올라가긴 했어요. 내려올 때도 어떤 고수를 만났는데 따라가다 보니 빨리 내려왔..

DevOps

Google Cloud Translation API detect confidence

Google Cloud Translation API detect confidence GCP 에서 제공하는 Cloud Translation API 사용 시 detect 되는 언어 감지가 기대하는 대로 동작하지 않아 신뢰도에 대한 수치가 자세히 나와있는 무언가를 찾아보려고 시도했다. 문장의 길이가 짧을수록, 특히 영어를 사용하는 국가의 경우 정확성이 더욱 더 떨어지는 것으로 보였다. Basic, Advanced Basic(v2): https://cloud.google.com/translate/docs/editions 채팅, 소셜 미디어, 댓글과 같은 사용자 제작 컨텐츠를 취급하는 애플리케이션에 적합 Advanced(v3): 맞춤설정 및 긴 형식의 콘텐츠 사용 사례에 적합 용어집 기능 추가 https://cl..

JavaScript & TypeScript

JS RegExp perfomance

JS RegExp perfomance JavaScript 에서 /\s+/g 와 같이 리터럴 신택스로 작성한 RegExp이 존재할 때 const reg1 = /\s+/g 와 같이 다른 변수에 저장해두고 사용할 지, 아니면 바로 리터럴을 사용할 지에 대한 조사 내용은 아래 링크해둔 stackoverflow 의 첫 번째 답변을 보면 자세히 설명해주고 있다. ES5 이전에는 리터럴 신택스로 작성된 정규 표현식의 경우 자체적으로 한 번 컴파일하고 캐싱하고 사용하여 리터럴 신택스를 그대로 사용하여도 문제가 없었으나 ES5 부터 리터럴도 새 객체를 생성하는 것으로 변경되었고 그에 따라 JS 엔진들도 수정되었으므로 의존할 수 없다. 결론: 여러 번 사용되는 정규표현식의 경우 리터럴 신택스로 작성하여 따로 저장 후 사용..

PS/boj

BOJ)1389 - 케빈 베이커의 6단계 법칙

최소 거리랑 그래프 보고 BFS 생각함. V, E 갯수 제한 보고 인접 리스트 생각함. search 함수에서 전부 방문했으면 안 돌아도 되는거 처리 할 수 있는거 같은데 시간 문제 없어서 넘어감. 문법 헷갈려서 아직 콘솔 안 찍어보면 삐걱거림. 풀이 너무 오래 걸림. import sys from collections import deque input = sys.stdin.readline N, M = map(int, input().split()) board = [[] for _ in range(N + 1)] for _ in range(M): x, y = map(int, input().split()) board[x].append(y) board[y].append(x) def search(x): dq = de..

PS/boj

BOJ)15686 - 치킨배달

치킨 거리를 구하는 것은 O(1)로 가능 집에서 치킨집 까지의 거리를 모두 구한 리스트를 만들고 선택한 M 개의 치킨집까지의 거리 중에서 최솟값의 합을 구하면 nCm 개의 도시의 치킨거리가 나올텐데 그 중에 최솟값이 ans 라고 생각 최악의 경우를 고려해도 시간초과가 나지 않아 보였음. 13Cm 인데 여기서 m은 1~13, Combination 연산 최댓값 생각해도 13C7 대략 O(집 100 * 치킨집 7 * 13C7) sol 1 로 제출하고 다른 모범 답안 참조하여 sol 2로 수정함. 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 32 33 34 35 36 37 38 39 # sol 1 impor..

JavaScript & TypeScript

fastify-multipart handle multiple file streams and fields in TypeScript

Property 'file' does not exist on type 'Multipart'. Property 'file' does not exist on type 'MultipartValue'. @fastify/fastify-multipart 버전이 7.1.2 → 7.2.0 으로 바뀌면서 에러가 발생했다. 릴리즈 히스토리를 보니 Multipart type 이 바뀌게 되어서 발생하는듯 했고 아래와 같이 수정하여 해결했다. 1. Using type predicates const isMultipartFile = (multipart: Multipart): multipart is MultipartFile => { return ( (multipart as MultipartFile).file !== undefined..

kingsubin
'2022/09 글 목록