KATA#89

codataffee·2024년 7월 12일
1

CODEKATA

목록 보기
89/114
post-thumbnail

WHAT IS KATA?

KATA는 기술과 기술 향상에 초점을 맞춘 코드 챌린지입니다.
일부는 프로그래밍 기본 사항을 교육하는 반면 다른 일부는 복잡한 문제 해결에 중점을 둡니다.

이 용어는 The Pragmatic Programmer 라는 책의 공동 저자인 Dave Thomas 가
무술에서 일본의 카타 개념을 인정하면서 처음 만들어졌습니다.
Dave의 개념 버전은 코드 카타를 프로그래머가
연습과 반복을 통해 기술을 연마하는 데 도움이 되는 프로그래밍 연습으로 정의합니다.


- PYTHON


✔️ 문제 #1: 택배상자

✔️ 제출 코드

✔️ 코드 분석

def solution(order):
    n = len(order)  # order 배열의 길이(즉, 상자의 개수)를 n에 저장
    stack = []  # 보조 컨테이너 벨트 역할을 하는 스택 초기화
    idx = 0  # 현재 트럭에 실어야 할 상자의 순서를 추적하는 인덱스 초기화
    
    for box in range(1, n + 1):  # 1번 상자부터 n번 상자까지 반복
        stack.append(box)  # 현재 상자를 스택에 추가
        # 스택이 비어있지 않고 스택의 최상단 상자가 현재 순서의 상자와 일치하면
        while stack and stack[-1] == order[idx]:
            stack.pop()  # 스택에서 상자를 꺼내 트럭에 실음
            idx += 1  # 다음 실어야 할 상자의 순서로 이동
    
    return idx  # 트럭에 실린 상자의 개수를 반환


✔️ CHECK POINT

  • PYTHON

    def solution(order):
       n = len(order)  # order 배열의 길이(즉, 상자의 개수)를 n에 저장
       stack = []  # 보조 컨테이너 벨트 역할을 하는 스택 초기화
       idx = 0  # 현재 트럭에 실어야 할 상자의 순서를 추적하는 인덱스 초기화
       
       for box in range(1, n + 1):  # 1번 상자부터 n번 상자까지 반복
           stack.append(box)  # 현재 상자를 스택에 추가
           # 스택이 비어있지 않고 스택의 최상단 상자가 현재 순서의 상자와 일치하면
           while stack and stack[-1] == order[idx]:
               stack.pop()  # 스택에서 상자 꺼내기
               idx += 1  # 다음 실어야 할 상자의 순서로 이동
       
       return idx  # 트럭에 실린 상자의 개수를 반환
    
    • 상자의 총 개수 저장
      n = len(order) : 주어진 order 배열의 길이(상자의 총 개수)를 변수 n에 저장

    • 보조 컨테이너 벨트 역할을 하는 스택 초기화
      stack = [ ] : 보조 컨테이너 벨트 역할을 하는 스택 초기화

    • 현재 트럭에 실어야 할 상자의 인덱스 초기화
      idx = 0 : 현재 트럭에 실어야 할 상자의 순서를 추적하는 인덱스 초기화

    • 1번 상자부터 n번 상자까지 순회
      for box in range(1, n + 1) : 1번 상자부터 n번 상자까지 반복

    • 현재 상자를 스택에 추가
      stack.append(box) : 현재 순회 중인 상자를 스택에 추가

    • 스택에서 상자를 트럭에 실을 수 있는지 확인 및 실어주기
      while stack and stack[-1] == order[idx] :
      스택이 비어있지 않고, 스택의 최상단 상자가 현재 실어야 할 상자와 일치하면,
      stack.pop() : 스택에서 상자를 꺼내기
      idx += 1: 다음 실어야 할 상자의 순서로 이동

    • 트럭에 실린 상자의 개수 반환
      return idx : 트럭에 실린 상자의 개수 반환


profile
커피 좋아하는 데이터 꿈나무

0개의 댓글

관련 채용 정보