[이것이 코딩테스트다] 7장 이진 탐색(Binary Search)
·
study/알고리즘
이진 탐색은 탐색 범위를 반으로 좁혀가면서 빠르게 탐색하는 알고리즘이다.이진 탐색을 공부하기 위해선 가장 기본 탐색 방법인 순차 탐색에 대해 먼저 알아야 한다. : 리스트 안에 있는 특정한 데이터를 찾기 위해 앞에서부터 데이터를 하나씩 차례대로 확인하는 방법 📌 순차탐색은 주로 정렬되지 않은 리스트에서 데이터를 찾아야 할 때 사용한다. ✅ 순차적으로 target을 찾기 전까지 모든 데이터를 훑기 때문에 최악의 경우 데이터의 개수가 N개일 때 N번의 비교 연산이 이루어지므로, 시간 복잡도가 O(N)이 된다. ✅ 파이썬의 'count 메서드'는 내부적으로 순차 탐색이 수행된다. 1. 이진 탐색이란? 📌 이진 탐색은 배열 내부의 데이터가 정렬되어 있어야만 사용할 수 있는 알고리즘이다.  ✅ 이진 탐색은 시..
[프로그래머스] 250121 PCCE 기출문제 10번 / 데이터 분석 파이썬
·
study/알고리즘
https://school.programmers.co.kr/learn/courses/30/lessons/250121 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 1. 문제 설명data = [[1, 20300104, 100, 80], [2, 20300804, 847, 37], [3, 20300401, 10, 8]]이런 식으로 구성된 데이터에서 원하는 정보를 뽑아 정렬해 출력하는 문제다.  2. 문제 풀이def solution(data, ext, val_ext, sort_by): answer = [] data_type = { "code"..
[알고리즘] 정렬 알고리즘(이것이 코딩테스트다)
·
study/알고리즘
정렬이란 데이터를 특정한 기준에 따라서 순서대로 나열하는 것이다.  1. 선택 정렬: 가장 작은 데이터를 선택해 맨 앞에 있는 데이터와 바꾸는 과정을 반복하는 정렬 방법array = [7, 5, 9, 0, 3, 1, 6, 2, 4, 8]for i in range(len(array)): min_index = i # 가장 작은 원소의 인덱스 for j in range(i + 1, len(array)): if array[min_index] > array[j]: min_index = j array[i], array[min_index] = array[min_index], array[i] # 스와프print(array)시간 복잡도 : O(N^2) 2. 삽입 정렬: 두..
[알고리즘] '이것이 코딩테스트다' Chapter 4 구현
·
study/알고리즘
❇️이 글은 '이것이 코딩테스트다' 교재를 학습하며 작성했습니다.구현 문제는 '머릿속에 있는 알고리즘을 소스코드로 바꾸는 과정'이다. 이 책에서는 모든 경우의 수를 주저없이 다 계산하는 해결방법인 '완전 탐색'과, 문제에서 제시한 알고리즘을 한 단계씩 차례대로 직접 수행해야 하는 '시뮬레이션' 문제를 구현 문제로 포함하고 있다. 파이썬에서 int 자료형 데이터의 개수에 따른 메모리 사용량데이터의 개수(리스트의 길이)메모리 사용량 1,000약 4KB1,000,000약 4MB10,000,000약 40MB 예제 4-1 상화좌우N = int(input())x, y = 1, 1plans = input().split()# L, R, U, D에 따른 이동 방향dx = [0, 0, -1, 1]dy = [-1, 1, 0..
[백준] 13305번 주유소 파이썬(그리디 알고리즘)
·
study/알고리즘
https://www.acmicpc.net/problem/13305 13305번: 주유소 표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 도시의 개수를 나타내는 정수 N(2 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 인접한 두 도시를 연결하는 도로의 길이가 제일 왼쪽 도로부터 N-1 www.acmicpc.net 1. 문제 설명 도시 개수, 도시 별 1리터 당 기름 가격, 도시에서 도시 사이의 거리를 입력받아 주유비의 최솟값을 구하는 문제다. 2. 풀이 첫 번째 시도(17점) 1. 어차피 마지막 도시에서는 더 가지 않으니 가격을 생각하지 않았다. 2. price의 최솟값을 구해 그 도시부터 마지막 도시까지 가는 거리를 더했다. 3. 최솟값 도시가 오기 전까지는 반복문을 돌면서 다음으로 갈 도..
[알고리즘] 그리디 알고리즘이란?
·
study/알고리즘
❇️이 글은 '이것이 코딩테스트다' 교재를 학습하며 작성했습니다. 그리디 알고리즘은 현재 상황에서 가장 좋아보이는 것만을 선택하는 알고리즘이다. 1. 거스름돈 문제 당신은 음식점의 계산을 도와주는 점원이다. 카운터에는 거스름돈으로 사용할 500원, 100원, 50원, 10원짜리 동전이 무한히 존재한다고 가정한다. 손님에게 거슬러 줘야 할 돈이 N원일 때 거슬러줘야 할 동전의 최소 개수를 구해라. 단, 거슬러 줘야 할 돈 N은 항상 10의 배수이다. 해결방법 돈을 가장 큰 화폐 단위부터 거슬러주면 된다. n=1260 count = 0 #큰 단위의 화폐부터 차례대로 확인 coin_types = [500, 100, 50, 10] for coin in coin_types: count+=n//coin #해당 화폐..
cowboysj
'알고리즘' 태그의 글 목록