본문 바로가기

컴린이 일기장/Today I Learned

[TIL] 파이썬 pass, continue, break / 선형자료구조 (배열, 스택)

반응형

[주절주절]

1~2개 파일이지만 github에 기록도 하고 있다. 오랜만에 잔디 심기~ 🌿

 

[Today I Learned]

# 파이썬 pass, continue, break 

1) pass: 실행할 코드 없음. 다음 행동 계속 진행.

2) continue: 해당 loop 넘어가고 다음 loop 진행

3) break: 해당 loop 멈추고 밖으로

 

# 선형자료구조

- 데이터가 순차적으로 배열되는 단일 레벨 자료구조
- 단일 레벨이기 때문에 한 번에 탐색이 가능하다.
- ex. 배열, 스택, 큐, 연결 리스트 등

 

# 배열

- 메모리 공간 기반의 연속 방식 자료형
- 리스트는 크기를 지정하지 않고 자동으로 리사이징하는 동적 배열
ㄴ 원리) 초깃값을 작게 잡아 배열을 생성하고, 데이터가 추가되어 꽉 채워지면 늘려 모두 복사하는 식

 

+ 세 수의 합

# 배열을 입력받아 합으로 0으로 만들 수 있는 3개의 엘리먼트 출력

# 혜린 - 투포인터

def three_sum(nums):

    results = []
    nums.sort()

    for i in range(len(nums)-2):
        left, right = i, len(nums) - 1

        if i>0 and nums[i] == nums[i-1]:
            continue

        left, right = i+1, len(nums) - 1 # 투포인터

        while left < right:

            sum = nums[i] + nums[left] + nums[right]

            if sum < 0:
                left += 1

            elif sum == 0: # 세트 찾았다고 끝 X. 남은 경우 더 탐색.
                results.append([nums[i], nums[left], nums[right]])

                while left < right and nums[left] == nums[left+1]:
                    left += 1
                
                while left < right and nums[right] == nums[right-1]:
                    right -= 1

                left += 1
                right -= 1

            else: # >0
                right -= 1

    return results

ㄴ 투포인터

 

# 스택

- 스택은 가장 나중에 들어온 자료가 가장 먼저 처리되는 LIFO(Last-In-First-Out) 자료구조이다.
- 파이썬은 스택 자료구조를 따로 제공하지는 않고, list를 사용하면 된다.

1) 초기화

stack = []

2) Push

stack = [1,2,3]
stack.append(4)

stack
[1,2,3,4]

3) Pop

stack = [1,2,3]
top = stack.pop()

print(top)
3

stack
[1,2]

 

[질문 노트]

Q. 나 이래 해서 코테 볼 수 있는 거 맞나?

 

 

반응형