티스토리 뷰
코딩테스트를 준비하기에 앞서 일단 저희는 자료구조에 대해 이해해야합니다.
가장 기본적인 자료구조 부터 알아보러 갈까요?
* 모든 코드블럭은 phython 기준으로 작성됩니다.
배열(Array)
여러분들을 정리를 좋아하시나요?
물건을 보관할때 찾기 쉽도록 일정한 위치에 두면 추후에 효율적으로 찾아낼 수 있겠죠?
또 물건을 보관하기 위한 보관함도 있다면 훨씬더 효율적으로 물건을 찾을 수 있을겁니다.
배열도 비슷한 개념으로 개발된 하나의 함수입니다.
예를들어 정수 10개를 보관하고 싶다고 가정한다면 아래와 같이 10개의 변수가 필요합니다.
a = 1;
b = 2;
~
j = 10;
하지만 이런 변수선언은 관리도 힘들 뿐더러 선언하기까지 걸리는 시간도 비효율적입니다.
이럴때 배열로 선언하면 하나의 변수안에 10개의 정수를 넣을 수 있습니다.
b = (1,2,3,4,5,6,7,8,9,10)
자 이제 b라는 배열안에 10개의 정수가 들어갔습니다. 위의 코드보다 훨씬 간결하고 효율적으로 바뀌었습니다.
또한 배열은 index라는 개념이 존재하기 때문에 원하는 값을 index를 통해서 수정하거나 호출 할 수 있습니다.
만약에 제가 7이라는 값을 가져오고 싶다면
print b[6]
와 같이 쉽게 불러 올 수 있습니다.
배열은 프로그래밍에서 데이터를 보관하고 처리하는데 있어서 가장 대중적이고 중요한 자료구조 입니다.
해시 테이블(Hash Table)
해시테이블은 알기쉽게 설명하면 물건에 이름표를 달아서 물건을 찾기 쉽게하는 개념과 동일합니다.즉 이름표(Key) 와 물건(Value) 의 쌍으로 이루어진 데이터를 저장하는데 사용됩니다.즉 데이터를 저장할 때 Key와 Value값을 한 쌍으로 데이터를 저장하고 Value값을 호출 할때 Key값을 통해서 Value값을 받을 수 있습니다. 물론 그 반대도 가능하구요!
Phython에서는 Dictionary가 이 개념을 그대로 사용하고 있습니다.
# 해시 함수
def hash_func(key):
# 문자열의 길이를 해시 값으로 반환
return len(key)
# 해시 테이블 생성
hash_table = {}
# 데이터 추가
hash_table["banana"] = hash_func("banana")
# 데이터 검색
key = "banana"
if key in hash_table:
print(f"{key}의 값: {hash_table[key]}")
else:
print(f"{key}를 찾을 수 없습니다.")
다음과 같이 코드를 작성하게 되면 banana라는 Key값을 가지고 value은 1인 데이터가 해쉬테이블 에 추가됩니다.그래서 Key값을 통해서 print를 해본다면 1이라는 값을 Return받을 수 있습니다.
'소소한 잡담 > 코딩테스트 대비' 카테고리의 다른 글
[코딩 테스트] 제로부터 시작하는 코딩테스트 (시간 복잡도) - 0 - (5) | 2022.05.24 |
---|
- Total
- Today
- Yesterday
- Logstash 활용
- JWT
- ACTUATOR
- Gateway
- 루틴기록
- consumer
- 운동일기
- MariaDB
- kafka
- Logstash to ElasticSearch
- producer
- github
- config
- springcloud
- Kafka Connect
- rabbitmq
- UserService
- Spring + ELK
- git
- docker
- prometheus
- 오늘저녁 삼겹살
- LoadBalancer
- zipkin
- elasticSearch
- Feign
- 빅-오
- MSA
- 미래의나에게동기부여
- 운동
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |