나의 첫 코딩 테스트 음계! 2920번: 음계 다장조는 c d e f g a b C, 총 8개 음으로 이루어져있다. 이 문제에서 8개 음은 다음과 같이 숫자로 바꾸어 표현한다. c는 1로, d는 2로, ..., C를 8로 바꾼다. 1부터 8까지 차례대로 연주한다면 ascending, 8 www.acmicpc.net 내가 통과한 코드 x = input().split() x = list(map(int, x)) ascending = [] descending = [] if x[0] == 1: for i in range(0, len(x)): ascending.append(i+1) if x[0] == 8: for i in range(0, len(x)): descending.append(8-i) if ascendin..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/RCiQL/btrKGx73zPp/0rKwN2ATeMgJ6hQW3SPdOK/img.png)
이전 포스팅 체이닝 기법에 이어 클로즈 기법에 대해 알아보자. [자료구조] 해시테이블 체이닝 기법 개념 및 구현 with 파이썬(Python) 해시테이블이란 key에 data를 저장하는 데이터 구조이다. 파이썬의 딕셔너리 구조와 동일하다. key를 통해 data를 찾아가는 과정은 다음과 같다. key를 hash 함수에 넣고 일정한 길이의 해시 코드를 얻 techbrad.tistory.com 클로즈 기법에 하나로 Linear Probing 이 있다. hash address 충돌로 인해 다른 hash address를 찾아 저장하는 방법이다. 체이닝 처럼 링크드 리스트 자료구조를 사용하지 않아도 되어 메모리 공간을 효율적으로 사용할 수 있다는 장점이 있다. 아래 그림처럼 Jack 과 Andrew는 같은 해시 ..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/dGZHob/btrKHvBoVl5/lK8hkw7OOGY7DVc8tWptqK/img.png)
해시테이블이란 key에 data를 저장하는 데이터 구조이다. 파이썬의 딕셔너리 구조와 동일하다. key를 통해 data를 찾아가는 과정은 다음과 같다. key를 hash 함수에 넣고 일정한 길이의 해시 코드를 얻게 된다. 이후 3으로 나눈 나머지인 0, 1, 1이 index가 되며 이를 통해 data를 찾을 수 있다. 해시 테이블의 장점은 저장/읽기의 속도가 빠르다는 것이다. 따라서 검색, 조회가 빈번한 작업인 경우에 해시테이블을 활용하면 빠르게 데이터를 관리하는 효과를 얻을 수 있다. 하지만 장점이 있으면 단점이 있는법! index가 중복되는 경우 저장시에 충돌이 발생한다는 것이 단점이다. 해시 함수가 10을 나눈 나머지를 구하는 것이라고 가정해보자. 이러면 숫자 28을 10으로 나누면 8이 나머지이다..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bB5vxy/btrKqFcHAT4/XCzpeaF0566QvJEwRZMQ01/img.png)
처음에 링크드리스트에 대한 개념이 잡히지 않아 이해하기가 힘들었다. 하지만 프로그래밍을하며 메모리를 사용하는 방법에 대해 어느 순간 감이 왔고 링크드리스트에 대한 이해가 완벽하진 않지만 예전보다는 많이 되었다. 배열은 순차적으로 메모리의 공간을 사용한다. 아래의 그림처럼 4개 짜리의 배열을 선언 후 각각에 값을 저장하여 순차적으로 데이터를 한 공간에 나열한다. 이렇게 하면 장점은 빠르게 원하는 index에 맞는 데이터를 찾을 수 있다. 학창시절에 새로운 학교에 입학 했을 때 2학년 10반을 찾으려고 한다면 보통 어떻게 했을까? 나는 계단을 오른 후 2학년 1반을 찾아 그 길로 계속 가면 10반이 나왔다. 1반에서 부터 10반이 한 층에 순차적으로 놓여있으면 반을 찾기가 쉽다. 하지만 배열의 단점은 데이터..
파이썬으로 네트워크 소켓 프로그래밍을 하던 도중 Error argument after * must be an iterable 오류가 발생하였다. 에러 문구 Python Threading module Error argument after * must be an iterable 문제 발생 코드 client = threading.Thread(target=modifythreshold, args=(conn)) threading 라이브러리를 사용할 때 args 파라미터는 iterable 해야한다. args=(conn)) 이부분을 args=(conn,)) 쉼표 하나 붙여주면 해당 에러가 더이상 발생하지 않는다.
- Total
- Today
- Yesterday
- lightsail
- 다이나믹프로그래밍
- linux
- 자료구조
- synflooding
- t검정
- 코딩테스트
- 카카오페이면접후기
- 우선순위큐
- 딥러닝
- 카카오페이
- 시간초과
- java
- 정보보안
- 리눅스
- Ai
- FastAPI
- llm
- Python
- springboot
- 보안기사
- 정보보안기사
- 파이썬
- 보안
- 프로그래머스
- 백준
- 그리디
- t-test
- LangChain
- 분산시스템
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |