티스토리 뷰

코딩테스트를 준비하기에 앞서 일단 저희는 자료구조에 대해 이해해야합니다. 

가장 기본적인 자료구조 부터 알아보러 갈까요?

* 모든 코드블럭은 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받을 수 있습니다. 


 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
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
글 보관함