일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 왕실의나이트
- 우아한테크코스
- 동등성
- forloop
- 너디너리
- 동일성
- 동빈북
- loop
- nestJS
- 이것이취업을위한코딩테스트다
- ssh-action
- CICD
- HashCode
- 라이징캠프
- equlas
- 나동빈
- 이코테
- makeus
- Payload
- 컴공선배
- object
- github action
- 우테코
- 해커톤
- Hackathon
- remove
- CMC
- JWT
- 딕셔너리
- Signature
- Today
- Total
목록분류 전체보기 (38)
작지만 꾸준한 반복
요즘은 로컬에 데이터베이스를 설치하지 않고 도커로 DB를 띄워서 사용하고 있다 aquerytool이나 quickDBD 같은 온라인 사이트를 이용하여 DB를 설계한 후 추출한 DB 생성 쿼리를 저장해두고 javascript에서 해당 생성쿼리가 있는 파일을 읽어와서 실행시키는 방식으로 사용하고있다 가뜩이나 AWS 프리티어 요금도 끝나서 막막했는데 아주 쏠쏠하다 문제 코드는 다음과 같다 const fs = require('fs') const serviceDB = require('adapters/servicedb') const init = async () => { try { const fileSQL = await fs.readFileSync('src/adapters/servicedb/init.sql', { en..
요즘 나동빈님의 이것이 취업을 위한 코딩테스트다 책을 보고있다. 방학을 맞아 하고있는 UMC 앱런칭 프로젝트가 내 메인이긴 하지만, 알고리즘 관련 문제는 못해도 하루에 하나씩은 꾸준히 풀자는 나와의 약속과 취업을 준비하며, 코딩테스트를 통과하기 위한 최소한의 실력을 위해 꾸준히 보고있다. 그 중 왕실의 나이트라는 문제를 푸는 중, 2차원 배열을 그린 후 나의 좌표를 행은 숫자, 열은 알파벳으로 입력받는 구간이 있었다 xy=input() # ex) a1 row = int(xy[1]) col = int(ord(xy[0])) - int(ord('a')) + 1 띠용? 아스키코드? 예전 C++ 수업때 처음 ASCII코드를 다루는 코드를 접했을때 많이 헤맸던 기억이 있다. // ... while (true){ c..
파이썬 사용 중 list를 for loop를 돌리면서 하나씩 제거하려고 했는데 자꾸 요상하게 삭제됐다 코드는 다음과 같다 K = 4200 money_list = [50000, 10000, 5000, 1000, 500, 100, 50, 10] for money in money_list: if money > K: money_list.remove(money) print(money_list) # [10000, 1000, 500, 100, 50, 10] money_list 속 원소를 돌며 조건에 해당하는 원소를 제거하려고 하는 상황이다 조건에 해당하는 50000, 10000, 5000이 모두 삭제되어야 하지만, 그렇지 않고 10000은 그대로 남아있는 것을 볼 수 있다 이유는 무엇일까? remove() 사용시 리..
딕셔너리, 맵 한줄요약 : JSON이라고 생각하면 된다 Key, Value 형태로 제공되는 자료구조이다 C++에서는 맵, 파이썬에서는 딕셔너리라는 이름으로 제공된다 삽입/삭제시 Python의 딕셔너리에서는 O(1), C++의 맵에서는 O(logN)의 시간 복잡도를 가진다 이때 Key는 Unique하여 중복을 허용하지 않는다 두 언어의 시간복잡도가 다른 이유는, 내부적으로 다르게 구현되어 있기 때문이다 파이썬은 Hash 구조로 구현되어있어, 상수의 시간복잡도가 나온다 본 것과 같이 Hash는 하나의 Unique한 key 하나당 각각의 hash가 연결되어 있다 그래서 시간복잡도가 O(1)이 나온다...! 레드블랙 트리.. 알고리즘 시간에 꽤나 골칫거리였던 친구... 여기서 또 보는구나... C++의 Map..
우선순위 큐 큐는 먼저 들어오는 데이터가 먼저 나가는 FIFO 형식의 자료구조이나, 우선순위 큐는 먼저 들어오는 데이터가 아닌, 우선순위가 높은 데이터가 먼저 나간다. 또한, 내부적으로 이진 트리(Binary Tree) 형태의 힙(Heap)이라는 형태로 돌아가게 된다 그림을 보면 우선순위 큐를 이진 트리가 있고, 가장 최상단의 root node가 모든 노드를 통틀어 가장 큰 값을 가지고 있다는 것을 알 수 있다. 이와 같이 루트 노드에 큰 값이 들어가있으면 max-heap으로, 루트 노드에 가장 작은 값이 들어가 있으면 min-heap이라 한다 각 트리의 노드에 번호를 붙이고, 이 번호를 배열의 인덱스로 생각하면 효과적으로 힙을 구현할 수 있다 삽입/삭제를 한 번 할때 시간 복잡도는 O(logN)을 가지..
스택 삽입/삭제시 시간복잡도는 O(1) 선입후출의 성질을 갖고 있다 -> FILO : First Input Last Out(선입후출) 맨 처음 들어온 데이터가 가장 마지막에 나오게 되는 추상 데이터타입이다 과자 프링글스를 생각하면 딱이다 브라우저의 뒤로가기 기능 등에 사용된다 구현 스택에 데이터를 집어넣을 때는 push 스택에서 데이터를 추출할 때는 pop을 사용한다 코드 // C++ stack s; s.push(123); s.push(456); s.push(789); printf("size: %d\n", s.size()); while (!s.empty()) { printf("%d\n", s.top()); s.pop(); } # python s = [] s.append(123) s.append(456) ..
배열 가장 기본적인 자료구조이다 삽입 / 삭제의 시간복잡도 : O(N) 탐색 시간복잡도 : O(1) C++에서는 size 변경이 불가하며, python은 리스트를 사용하여 구현한다 // C++ int arr[4] = {10, 11, 12, 13}; arr[2] = 5; # python arr = [10, 11, 12, 13] arr[2] = 5 배열을 생성할 땐, 메모리에 연속된 공간이 생긴다. 탐색시, 임의접근(random access)하기 때문에 탐색속도가 빠르다 O(1) 삽입시 해당하는 위치 뒤에 있는 친구들을 하나씩 다 밀어줘야 하고 삭제시 해당하는 위치 뒤에 있는 친구들을 하나씩 다 땡겨줘야 하기 때문에 시간복잡도는 O(N)이 된다 삽입/삭제를 많이 하는 경우에는 배열이 불리하고, 탐색을 많이 ..
ORA-01017: 사용자명/비밀번호가 부적합, 로그온 할 수 없습니다. 데이터베이스 수업시간, 실습에 사용할 DB는 오라클이고, 마의 54퍼센트 구간을 잘 넘겨 설치를 잘 마무리했다. 하지만... 사용자 로그인이 안되는 것이었다. 계속해서 테스트에 실패하고... 야속하게 사용자/비밀번호가 부적합하다는 메시지만... 나왔다 구글에 나오는 온갖 방법을 다 했지만 해결되진 않았고 나와 똑같은 상황에 있는 사람이 쓴 글을 보았다 https://okky.kr/article/431423 OKKY | (초보)oracle 12C 로그인 에러- ORA-01017 간단하게 말씀드리면 오라클 에러 ORA-01017이 발생합니다. 구글에 검색해봐도 대소문자만 구분하는 답변뿐이네요.. 대소문자 구분도 false로 해놓았습니다..