본문 바로가기

파이썬45

이진탐색 (Binary Search) 알고리즘 00 개요목표: 코딩테스트 뽀개기!01 이진탐색 (Binary Search)1. 이진탐색이란어떤 값을 찾을 (탐색할) 때 정렬의 특징을 이용해 빨리 찾는 알고리즘정렬되어있을 경우, 어떤 값을 찾을 떄: O(N) → O(lgN)처음부터 생각하기 어려움, 쉬운 방법부터 생각예) 1~4 숫자 중 특정 숫자를 찾을 때모두 탐색: O(N), 1부터 4까지 순서대로 비교 (1과 비교, 아니면 2와 비교, 아니면 3과 비교 ...)이진 탐색: O(lgN), 전체 숫자를 반으로 잘라 자른 것 중 가장 가까이 있는 숫자와 비교 (자른 후 1, 2 | 3, 4로 나뉨, 2와 비교, 더 크면 더 큰 무리(3, 4)를 3 | 4로 나눈 후 3과 비교)2. 핵심 코드아래 코드는 미리 외워둬야됨!def search(start, .. 2025. 2. 21.
자료구조 종류 (파이썬 예시) 01 자료구조1.  자료구조란자료구조는 데이터를 효율적으로 저장하고 관리하는 방법을 제공하는 개념다양한 자료구조가 있으며, 용도에 따라 적절한 자료구조를 선택해야 함02 자료구조 종류1. 배열 (Array)1) 특징같은 타입의 데이터를 연속된 메모리 공간에 저장인덱스 (Index)를 사용하여 요소에 빠르게 접근 가능 (시간복잡도: O(1))크기가 고정되어 있어 삽입/삭제가 비효율적 (시간복잡도: O(n))2) 예시arr = [10, 20, 30, 40, 50]print(arr[2]) # 30 3) 활용 예시리스트 기반의 순차적 데이터 저장고정된 크기의 데이터 저장 2. 연결 리스트 (Linked List)1) 특징노드(Node) 단위로 구성, 각 노드는 데이터 + 다음 노드의 주소를 저장동적 크기 조절 .. 2025. 2. 20.
5 실습13 회원가입 알림 - Background Task 앞 단계 참조 링크:상태 코드:  2024.03.26 - [Web 개발/FAST API (인프런 강의 내용)] - 1 FastAPI 알아보기프로젝트 소개 및 환경 구축: 2024.04.05 - [Web 개발/FAST API (인프런 강의 내용)] - 1 실습1 GET API 전체조회1 실습1 GET API ToDo 전체 조회: 2024.04.05 - [Web 개발/FAST API (인프런 강의 내용)] - 1 실습1 GET API 전체조회1 실습2 GET API ToDo 단일 조회: 2024.04.09 - [Web 개발/FAST API (인프런 강의 내용)] - 1 실습2 GET API 단일조회1 실습3 POST API ToDo 생성: 2024.04.15 - [Web 개발/FAST API (인프런 강의 .. 2025. 2. 17.
5 실습12 OTP 인증 API 앞 단계 참조 링크:상태 코드:  2024.03.26 - [Web 개발/FAST API (인프런 강의 내용)] - 1 FastAPI 알아보기프로젝트 소개 및 환경 구축: 2024.04.05 - [Web 개발/FAST API (인프런 강의 내용)] - 1 실습1 GET API 전체조회1 실습1 GET API ToDo 전체 조회: 2024.04.05 - [Web 개발/FAST API (인프런 강의 내용)] - 1 실습1 GET API 전체조회1 실습2 GET API ToDo 단일 조회: 2024.04.09 - [Web 개발/FAST API (인프런 강의 내용)] - 1 실습2 GET API 단일조회1 실습3 POST API ToDo 생성: 2024.04.15 - [Web 개발/FAST API (인프런 강의 .. 2025. 2. 13.
5 실습11 OTP 생성 API 앞 단계 참조 링크:상태 코드:  2024.03.26 - [Web 개발/FAST API (인프런 강의 내용)] - 1 FastAPI 알아보기프로젝트 소개 및 환경 구축: 2024.04.05 - [Web 개발/FAST API (인프런 강의 내용)] - 1 실습1 GET API 전체조회1 실습1 GET API ToDo 전체 조회: 2024.04.05 - [Web 개발/FAST API (인프런 강의 내용)] - 1 실습1 GET API 전체조회1 실습2 GET API ToDo 단일 조회: 2024.04.09 - [Web 개발/FAST API (인프런 강의 내용)] - 1 실습2 GET API 단일조회1 실습3 POST API ToDo 생성: 2024.04.15 - [Web 개발/FAST API (인프런 강의 .. 2025. 2. 10.
투포인터 (Two-Pointer) 알고리즘 00 개요목표: 코딩테스트 뽀개기!01 투포인터1. 투포인터란각 원소마다 모든 값을 순회해야할 때, O(N^2)연속하다는 특성을 이용해서 처리, O(N)두 개의 포인터(커서)가 움직이면서 계산처음부터 생각해내기 어려움, 쉬운 방법부터 생각하는 것 추천 (i.e., 일일히 다 계산해 본 후, 어떠한 패턴이 보이면 그 때 적용해보기)2. 연습 문제: 백준 2559 수열참조: https://www.acmicpc.net/problem/25591) 문제Q:매일 아침 9시에 학교에서 측정한 온도가 어떤 정수의 수열로 주어졌을 때, 연속적인 며칠 동안의 온도의 합이 가장 큰 값을 알아보고자 한다. 예를 들어, 아래와 같이 10일 간의 온도가 주어졌을 때, 3 -2 -4 -9 0 3 7 13 8 -3 모든 연속적인 이.. 2025. 2. 7.
실패율 - 프로그래머스 01 문제 설명슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스테이지 차이가 너무 큰 것이 문제였다. 이 문제를 어떻게 할까 고민 한 그녀는 동적으로 게임 시간을 늘려서 난이도를 조절하기로 했다. 역시 슈퍼 개발자라 대부분의 로직은 쉽게 구현했지만, 실패율을 구하는 부분에서 위기에 빠지고 말았다. 오렐리를 위해 실패율을 구하는 코드를 완성하라. 실패율은 다음과 같이 정의한다. 스테이지에 도달했으나 아직 클리어하지 못한 플레이어의 수 / 스테이지에 도달한 플레이어 수 전체 스테이지의 개수 N, 게임을 이용하는 사용자가 현재 멈춰있는 스테이지의 번호가 담긴 배열 stages가 매.. 2025. 2. 6.
DP (Dynamic Programming) 알고리즘 00 개요목표: 코딩테스트 뽀개기!01 DP1. DP란Dynamic Programming이전의 값을 재활용하는 알고리즘예) 1 ~ 10 숫자 중 각각 이전 값들을 합한 값 구하기이전의 값을 활용해서 시간복잡도 축소 가능2. 연습 문제: 백준 117262×n 타일링링크: https://www.acmicpc.net/problem/117261) 문제Q:2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다.입력:첫째 줄에 n이 주어진다. (1 ≤ n ≤ 1,000)출력:첫째 줄에 2×n 크기의 직사각형을 채우는 방법의 수를 10,007로 나눈 나머지를 출력한다.예제 입력 1:더보기2예제 출력 1:더보기.. 2025. 2. 6.
롤케이크 자르기 - 프로그래머스 01 문제 설명철수는 롤케이크를 두 조각으로 잘라서 동생과 한 조각씩 나눠 먹으려고 합니다. 이 롤케이크에는 여러가지 토핑들이 일렬로 올려져 있습니다. 철수와 동생은 롤케이크를 공평하게 나눠먹으려 하는데, 그들은 롤케이크의 크기보다 롤케이크 위에 올려진 토핑들의 종류에 더 관심이 많습니다. 그래서 잘린 조각들의 크기와 올려진 토핑의 개수에 상관없이 각 조각에 동일한 가짓수의 토핑이 올라가면 공평하게 롤케이크가 나누어진 것으로 생각합니다. 예를 들어, 롤케이크에 4가지 종류의 토핑이 올려져 있다고 합시다. 토핑들을 1, 2, 3, 4와 같이 번호로 표시했을 때, 케이크 위에 토핑들이 [1, 2, 1, 3, 1, 4, 1, 2] 순서로 올려져 있습니다. 만약 세 번째 토핑(1)과 네 번째 토핑(3) 사이를 .. 2025. 2. 6.