전체 글
-
JS Array.shift()는 O(N)이다.삽질했어요/Algorithm 2024. 3. 6. 03:23
프로그래머스 주식가격이라는 문제를 풀면서 배웠다. 첫 번째 효율성 검증 단계에서 빠꾸를 먹고 나름 최적화를 하면서 풀었기에 자신 있게 제출했는데 존나 억울하다. 다시 코드를 들여다보며 시간 복잡도를 잡아먹는 요소가 있나 찾아보았다. // 주식의 index 무조건 필요!!!!!! function solution(prices) { var answer = []; let price = prices.map((p, i)=>[p, i]) let stack = [] while(price.length > 0){ const p = price.shift() if(stack.length == 0) { stack.push(p) continue } // 주식 유지 if(stack[stack.length - 1][0] 0 && s..
-
정규 표현식 연속되는 문자열 감지하기삽질했어요/Algorithm 2024. 3. 2. 22:30
프로그래머스 옹알이(2)를 유심히 보다가 노가다 하는법 말고는 도저히 방법이 떠오르지 않았다. 이건 100% 정규표현식을 유도하는 문제임을 직감했다. 정규표현식을 다시 공부하자니 불필요한 내용까지 할 필요는 없었기에 문제 해결에 필요한 개념만 다시 공부했다. "aya" "ye" "woo" "ma"가 반복되는것만 감지해보자가 1차 목표였다. 정규표현식에는 "그룹"이라는 개념이있다. 그룹은 중괄호로 표현할 수 있는데, 이 그룹을 사용하면 \(그룹 번호) 형식으로 패턴 내에서 참조를 할 수 있다. const reg = /((aya)|(ye)|(woo)|(ma))\1{1,}/g 여기서 ((aya)|(ye)|(woo)|(ma)) 이 부분이 그룹 1이다. 위 4개의 문자열중에서 하나가 감지되면 그룹 1로 지정이 된..
-
github commit date 타임라인 표시 오류 해결삽질했어요/Git 2023. 11. 20. 02:22
사실 제목을 어떻게 해야될지 모르겠어서 키워드 중심으로 작성했다. 얼마전 github 잔디 욕심이 많았던 때였는데, 하루는 깜빡하고 잔디를 못심었다. commit date를 조작하여 잔디를 심으려고 블로그를 찾아보고 심었다. 해당 명령어를 입력하였다. git commit --amend --no-edit --date="원하는 날짜" 찾아본 블로그에는 원하는 날짜 예시가 이렇게 되어있었다. 나는 저 2000이라는 숫자가 밀리초 단위인줄알고 별 생각없이 복붙했다. 부푼 기대를 안고 github를 방문해보았는데 원하는곳에 잔디는 없고 타임라인이 주르륵 생겨났다. 참고로 본인은 2001년생이다. 다시 보니 저 2000이라는 숫자는 블로그 주인장의 생년이었고, 나는 타임라인을 되돌리고자 다시 커밋해서 올리고 계속 ..
-
도메인 설정을 위한 DNS 이해하기삽질했어요/Network 2023. 11. 19. 04:20
얼마 전, 개인블로그에 도메인을 연결하기 위해 가비아에서 choiyongwon.me 도메인을 구입하였다. 왜 me 도메인을 가비아에서..?? 이는 가비아는 최상위 도메인(TLD)인 me NameServer(이하 NS)와 제휴관계를 맺고 있기에 가능하다. 관리는 어디서 하는가?? 내가 가비아에서 choiyongwon.me 도메인을 구입하면 가비아는 me NS에게 다음과 같은 요청을 보낸다. 가비아 : choiyongwon.me 도메인은 내가 관리할게! 너의 (me NS) 레코드에 추가해줘! 이 요청 이후 각 NS의 상태는 그림 1과 같다. 우리는 가비아에서 choiyongwon.me 도메인을 구입하면 해당 도메인에 대한 레코드는 가비아에서 관리할 수 있다. 그림 1에서 gabia NS의 choiyongwo..
-
AWS ECS 구조 그림으로 이해하기삽질했어요/Devops 2022. 10. 20. 02:10
본 글은 내가 해당 인프라를 직접 구축해보면서 삽질해가는 과정과 배운점을 기록해둔 글이다. 구축 방법과 같은 글은 기존에 많이 있기에, 본 글은 최대한 그림 위주로 설명하고 이해하는 글이다. 바닥부터.. 먼저 VPC를 생성한다. 나는 두개의 가용영역 (AZ)을 선택하였고, VPC와 함께 다음 구성요소들이 같이 생성된다 서브넷 NAT 게이트웨이 인터넷 게이트웨이 라우팅 테이블 VPC만 생성했는데도, 벌써 이것저것 생성된게 많다. 짧게 설명해보자면, 서울 리전에는 가용영역이 총 4군데 있는데, 이중 나는 2개만 사용해서 a, b를 생성하였다. 가용영역별로 Public Subnet과 Private Subnet이 각각 하나씩 배치되었고, Private Subnet은 Public Subnet과 연결되어있는 NAT..