유물/알고리즘 6

<프로그래머스(파이썬)> 입국심사

🤖 문제 https://programmers.co.kr/learn/courses/30/lessons/43238 코딩테스트 연습 - 입국심사 n명이 입국심사를 위해 줄을 서서 기다리고 있습니다. 각 입국심사대에 있는 심사관마다 심사하는데 걸리는 시간은 다릅니다. 처음에 모든 심사대는 비어있습니다. 한 심사대에서는 동시에 한 programmers.co.kr 풀이 이분 탐색을 활용하여 풀이를 진행하였습니다. 알고리즘 문제가 어떤 유형인지 파악하면 풀이가 쉽게 떠오르기도 합니다. 이번 문제는 처음에 유형이 떠오르지 않아 한참 고민한 케이스였습니다.

유물/알고리즘 2022.04.07

<프로그래머스(파이썬)> 정수 삼각형

🤖 문제 https://programmers.co.kr/learn/courses/30/lessons/43105 코딩테스트 연습 - 정수 삼각형 [[7], [3, 8], [8, 1, 0], [2, 7, 4, 4], [4, 5, 2, 6, 5]] 30 programmers.co.kr 풀이 문제의 삼각형과 동일한 형태의 삼각형을 만들고 최댓값을 기록하는 방식으로 풀어나갔습니다. 최댓값을 기록하기 위한 새로운 자료형 없이 기존 삼각형에 값을 덧씌우는 방식으로 개선할 수 있을 것 같습니다.

유물/알고리즘 2022.04.07

<릿코드(파이썬)> 240. Search a 2D Matrix Ⅱ

🤖 문제 https://leetcode.com/problems/search-a-2d-matrix-ii/ Search a 2D Matrix II - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 풀이 이진 탐색으로 풀이를 진행했습니다. 13번째 줄에서 배열의 범위를 초과한다는 오류가 발생하였습니다. end의 범위를 구할 때 1을 빼주지 않았기 때문입니다. 인덱스의 범위는 0부터 시작하고 마지막 인덱스는 배열의 길이에서 1을 빼야 하는데 아직도 한번씩 실수를 하게 ..

유물/알고리즘 2022.04.01

<프로그래머스(파이썬)> [3차] 파일명 정렬

🤖 문제 https://programmers.co.kr/learn/courses/30/lessons/17686 코딩테스트 연습 - [3차] 파일명 정렬 파일명 정렬 세 차례의 코딩 테스트와 두 차례의 면접이라는 기나긴 블라인드 공채를 무사히 통과해 카카오에 입사한 무지는 파일 저장소 서버 관리를 맡게 되었다. 저장소 서버에는 프로그램 programmers.co.kr 풀이 파이썬에서 정규표현식을 활용하기 위한 re 라이브러리를 불러와서 풀이를 진행했습니다. 주어진 파일명을 head, number, tail로 쪼개는 split_name 함수를 정의하였습니다. 파일명의 문자를 하나씩 돌면서 조건을 확인하는데 i가 마지막 인덱스일 때 조건문을 잘못 설정해서 고생했습니다. 런타임 에러도 발생하였는데 rstrip(..

유물/알고리즘 2022.03.31

<자료구조> 스택

🎯 스택 1. 데이터를 추가하면 맨 마지막 위치에 자리합니다. 2. 삭제를 하면 맨 마지막 위치의 데이터를 삭제합니다(삭제 데이터 반환). 구현 (파이썬) class Node: def __init__(self, item, next): self.item = item self.next = next class Stack: def __init__(self): self.top = None def push(self, item): self.top = Node(item, self.top) def pop(self): if self.top is None: return None node = self.top self.top = self.top.next return node.item def is_empty(self): retu..

유물/알고리즘 2022.03.15

<자료구조> 역순 연결 리스트

🎯 { 역순 연결 리스트 } 연결 리스트 1. 요소들끼리 붙어 있지 않고 서로의 위치정보를 포인터로 가지고 있습니다. 2. 맨 앞의 헤드 요소의 주소만 알 수 있기 때문에 특정요소를 찾기 위해서는 맨 앞에서부터 하나씩 타고 갑니다. 3. 요소를 추가하기가 비교적 쉽습니다(포인터만 수정하면 됨). 배열 1. 요소들끼리 다닥다닥 붙어있습니다 2. 인덱스를 통해서 원하는 요소를 바로 찾을 수 있습니다. 3. 요소를 추가하기가 어렵습니다(요소들의 위치를 하나씩 움직여야 함). 연결리스트 vs 배열 연결 리스트 배열 장점 1. 추가/삭제 빠름 2. 크기가 동적 3. 효율적인 메모리 할당/이용 1. 탐색 시간 빠름 2. 노드당 메모리 적음 3. 캐시 지역성이 좋음 단점 1. 탐색 시간 느림 2. 노드별 메모리 더 ..

유물/알고리즘 2022.03.13