본문 바로가기
728x90
반응형

코딩테스트9

그래프 탐색 예제 - 음료수 얼려 먹기 N x M 크기의 얼음 틀이 있다. 구멍이 뚫려 있는 부분은 0, 칸막이가 존재하는 부분은 1로 표시된다. 구멍이 뚫려 있는 부분끼리 상,하,좌,우로 붙어 있는 경우 서로 연결되어 있는 것으로 간주한다. 이때 얼음 틀의 모양이 주어졌을 때 생성되는 총 아이스크림의 개수를 구하는 프로그램을 작성하시오. 다음의 4 x 5 얼음 틀 예시에서는 아이스크림이 총 3개 생성된다. 입력 조건첫 번째 줄에 얼음 틀의 세로 길이 N과 가로 길이 M이 주어진다. (1 두 번째 줄부터 N+1번째 줄까지 얼음 틀의 형태가 주어진다.이때 구멍이 뚫려있는 부분은 0, 그렇지 않은 부분은 1이다. 출력 조건한 번에 만들 수 있는 아이스크림 개수를 출력한다. 그래프 탐색 문제로 접근0이 상하좌우로 연결되어 있으면 하나의 그룹으로 간.. 2025. 2. 10.
8장 연결리스트 (1) - 연결리스트란? (예제 - 회문 판별) 연결 리스트(Linked List)연결 리스트(Linked List)는 배열과 함께 대표적인 선형 자료구조로, 다양한 추상 자료형(ADT) 구현의 기반이 됩니다. 이 구조는 동적으로 새로운 노드를 삽입하거나 삭제하기가 용이하며, 물리 메모리를 연속적으로 사용하지 않아도 되므로 메모리 관리에도 유리합니다. 연결 리스트의 특징동적 메모리 관리: 물리적으로 연속적이지 않아도 되므로 메모리 활용도가 높습니다.삽입/삭제의 효율성: 시작 또는 끝에 데이터를 삽입하거나 삭제하는 작업은 O(1)에 가능합니다.탐색의 비효율성: 특정 인덱스에 접근하려면 순차적으로 읽어야 하므로 탐색 시간은 O(n)입니다.  문제. 연결 리스트로 Palindrome(회문) 검사하기- 입력: 1->2 / 출력: False- 입력: 1->2-.. 2024. 11. 22.
9장 스택,큐(3) - 스택이란? (예제-일일 온도) 매일의 화씨 온도 리스트 T를 입력 받아서, 더 따뜻한 날씨를 위해서는 며칠을 더 기다려야 하는지를 출력하라.입력: T = [73, 74, 75, 71, 69, 72, 76, 73]출력: [1,1,4,2,1,1,0,0] def dailyTemperatures(T: list[int]) -> list[int]: answer = [0] * len(T) # 결과를 저장할 리스트, 초기값은 0 stack = [] # 인덱스를 저장하는 스택 for i, cur in enumerate(T): # 인덱스(i)와 현재 온도(cur)를 함께 순회 # 스택이 비어 있지 않고, 현재 온도가 스택의 마지막 인덱스에 해당하는 온도보다 높다면 while stack and cur.. 2024. 11. 20.
9장 스택,큐(2) - 스택이란? (예제-중복문자제거) 중복된 문자를 제외하고 사전식 순서로 나열하라입력: "bcabc" / 출력: "abc"입력: "cbacdcbc" / 출력: "acdb"  풀이. 스택을 이용한 문자 제거import collectionsdef removeDuplicateLetters(s: str) -> str: counter, seen, stack = collections.Counter(s), set(), [] for char in s: counter[char] -= 1 # 현재 문자의 개수를 하나 줄임 if char in seen: # 이미 스택에 추가된 문자라면 건너뜀 continue # 스택에서 문자를 제거할 조건: .. 2024. 11. 19.
728x90
반응형