본문 바로가기
반응형

분류 전체보기153

[18, 9].sort() = [18, 9] javascript sort weird... [18,9]를 sort 하면 어떻게 될까? array에 많이 들어있지도 않다. 숫자는 딱 2개… 겨우 단 2개… 컴퓨터를 사용하지 않고도, 심지에 이제 막 숫자를 배우기 시작하는 어린아이에게 18이 큰지, 9가 큰지 작은 숫자 순서대로 줄을 세워볼까? 라고 물어보면 단번에 답을 내릴 수 있는 아주 쉬운 문제다. 그런 줄 알았다. 단, javascript에게만 빼고 말이다…. 진짜 이게 무슨 말도 안 되는… 자.. 자.. 진정하고 가끔 그런 게 있을 수 있다. (아니 말도 안 되지만) 숫자라고 안 받아들이고 문자로 바꿔서 그런 거 아닐까? 제대로 정렬하기 위해서는 sort function의 인자값으로 내가 정의한 compare function(비교 함수)을 넣어줘야 한다. 아래와 같이 말이다. [18, 9.. 2023. 5. 4.
Identifier '변수' has already been declared check 이번에 js 코딩하면서 새로 발견한 오류와 그에 대한 해결책에 대해서 써보려 한다. 내가 만난 문제는 let을 중복 선언하게 되면서 let으로 선언한 변수가 재 선언될 수 없다는 에러 표시를 만났었다. Identifier '변수' has already been declared check @@: 아니 당연히 중복으로 선언하면 안 되지;; 당연히 알고 있다. 하지만 상황은 이랬다. html 안에 탭을 선택하면 서버에서 html을 불러와 내부에 넣게 되는데, 이때 삽입되는 html이 가지고 있는 js 파일 내 변수명과 외부에 이미 선언된 html 간의 let이 충돌하는 문제였다. 문제를 재연하기 위해 간단하게 만들어 보았다. index.html 간단하게 html(index.html)을 만들었다. 본인이 실행하.. 2023. 4. 3.
excel hyper link 삽입시 주의 사항 (# -> %23 이 될때) 이번에 자바로 엑셀에 값을 넣고 생성하면서 문제가 생긴 부분이 생겼고, 해결하는 과정을 적어보고자 한다. 기존에 엑셀에 외부링크를 넣을 때 (정확히는 인터넷 페이지 주소, url) 아래와 같이 코드를 짰었고, 문제가 없었다. String link = ""; HSSFWorkbook workbook = new HSSFWorkbook(); HSSFSheet sheet = workbook.createSheet("sheet1"); HSSFRow row = null; HSSFCell cell = null; row = sheet.createRow(0); cell = sheet.createCell(0); cell.setCellValue(link); Hyperlink link_article = workbook.getCr.. 2023. 4. 2.
number dictionary 선언시… 나는 여태껏 python dictionary를 사용할 때, key값이 어떤 값이던간에 key:value 형태로 사용하곤 했다. key 값이 숫자건 문자건 key가 생성되어 있다면 value를 추가(혹은 수정) key가 없다면 key에 대해 정의한뒤 value를 추가 하는 식으로 말이다. (defaultDict 안쓰는 고집이 있다.) 가령 예를 들어, 무방향 그래프에서 각 노드 간 연결이 아래와 같이 주어진다고 할 때 connections = [[0,1],[0,2],[1,2]] 이걸 dictionary 형태로 구성한다면 connections = [[0,1],[0,2],[1,2]] num_dict = {} for conn in connections: a,b = conn[0], conn[1] if a not .. 2023. 3. 26.
날짜 계산 [날짜 간 차이, 주(week) 계산, 날짜 더하기 빼기] 주먹구구 js 코딩~ 할 때마다 찾아보는 듯해서 어딘가 정리해 놓기... (아마 점점 추가하지 않을까...?) 날짜 객체 생성 const date = new Date(); 날짜에 상수 더하기 빼기 let date = new Date("2023-03-14"); console.log(date); // 2023-03-14T00:00:00.000Z let plus_day = new Date(date.setDate(date.getDate() + 1)); console.log(plus_day); //2023-03-15T00:00:00.000Z let minus_day = new Date(date.setDate(date.getDate() - 2)); console.log(minus_day); //2023-03-13T.. 2023. 3. 24.
LRU cache와 Double-Linked List 그리고 Ordered Dict [leetcode] tl;dr LRU cache 내부 구조는 double-linked list + dictionary(hash table) 형태로 구성 python의 collections.OrderedDict 는 double-linked list + dictionary(hash table) 형태 (삽입된 순서를 보장, 순서를 바꿀 수 있는 내부 함수 제공) 오늘 리트코드로 푼 문제의 제목은 LRU Cache 였다. LRU cache란? 우선, cache가 뭔지 정의되어야겠지? cpu는 연산할 때 사용하는 데이터를 디스크에서 가져오는데, cpu 연산속도에 비해 디스크에서 데이터 조회해 가져오는 속도는 절망적이다. 그래서 중간에 “디스크보다 훨씬 빠르게 조회할 수 있지만 적재는 적게 되는 공간”을 두는데 그게 바로 메모리다. .. 2023. 3. 18.
나는 인내심이 적고 적어.. (progress bar) tl;dr System.out.print(”…. \r”) 사용 시 해당 줄에서 지워지고 다시 써짐 애니메이션으로 보여지는건 직접 구현하거나, 잘 만들어진 거(예를 들어) 가져다가 쓰세요! intellij로 자바 실행 시 오래 걸리는 작업의 경우, 콘솔창(intellij)에서 print 찍어 놓은 게 없으면 하염없이 기다려야 한다... 이 경우 얼마나 진행됐는지 알고 싶을 때는 로딩바 (progress bar)라고 불리는 게 필요한데 오늘은 직접 한번 코드로 구현해 보자. 일단 오늘의 글을 도와줄 코드 public class mainClass { public static void main(String[] args) { mainClass mainClass = new mainClass(); int n = 69.. 2023. 3. 15.
싱글턴 패턴 (Singleton pattern) 간단 정리 싱글턴 패턴 정리 목차 1. 싱글턴 패턴이 뭔지? 2. 왜 쓰나요? 언제 쓰나요? 3. 어떤 문제가 있나요? 4. 코드로 살펴보자 5. 해당 singleton 패턴을 사용하는 java library 소개 6. 참고 싱글턴 패턴이 뭔지? 싱글턴 패턴은 객체 지향 디자인 패턴 중 하나로, 어떤 클래스의 인스턴스가 오직 하나임을 보장하는 패턴이다. 이 패턴은 전역 변수를 사용하여 클래스의 인스턴스를 저장하고, 해당 클래스의 인스턴스를 생성하는 메소드를 제공, 이렇게 하면 언제 어디서든지 해당 클래스의 인스턴스에 접근할 수 있다. 왜 쓰나요? 언제 쓰나요? 왜 쓰나요? 전역 변수를 사용하지 않고도 하나의 인스턴스만 생성 다수의 스레드에서 동시에 접근하더라도 안전하게 사용 인스턴스를 생성하는 비용이 큰 경우, 프.. 2023. 3. 14.
Reservoir Sampling? 날 괴롭히지마 [leetcode] n개중에 랜덤 한 k를 뽑는다고 할 때 Array list에서는 random.randInt(0, n) 식으로 랜덤 한 index를 추출, 해당 index를 접근해 값을 반환하는 식으로 구현할 수 있다. 이때 확률은 k/n 을 만족한다. 문제의 조건을 조금 바꿔서 linked list에서 특정 노드의 value를 랜덤 하게 k개를 선택하려고 할 때 해당 랜덤 선택 확률이 k/n (n = length of linked list)를 만족하려면? 단순하게 생각하기 linked list를 순회하면서 노드들의 value를 따로 저장해 둔다. (Linked list → Array list) 동일하게 Array의 length로 random.randInt(0, n) 식으로 index를 추출한다. 해당 index를 접근해.. 2023. 3. 13.
반응형