본문 바로가기
728x90

TIL - 프로그래밍/Python 알고리즘198

[프로그래머스] 무지의 먹방 라이브 - Python https://school.programmers.co.kr/learn/courses/30/lessons/42891 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근법 1 음식 먹는데 걸리는 시간 최소 순으로 생각 최소 시간 음식을 다 먹을때까지 회전이 가능 ex) [5,2,3,4] 인 경우 최소 2바퀴를 돌 수 있는지 이번 턴(이번 시간 - 최소 시간) 동안 모든 음식을 다 먹을 수 있는지 확인 == 회전이 가능한지 못 먹는다면 남은 음식 중 답이 있다 남은 음식 중 남은 시간번째가 답 코드1 from collections import Counter d.. 2023. 3. 21.
크루스칼 알고리즘 (Kruskal Algorithm) 가장 적은 비용으로 모든 노드를 연결하기 위해 사용하는 알고리즘 최소 비용 신장 트리를 만들기 위한 대표적인 알고리즘 핵심 개념 간선을 거리가 짧은 순서대로 그래프에 포함시키기! 사이클이 형성되지 않도록 사이클이 발생하는지 여부 -> Union-Find 알고리즘 https://school.programmers.co.kr/learn/courses/30/lessons/42861# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr # 부모 찾기 def find_parent(parent,i): if parent[i] != i: parent[i] = find_pare.. 2023. 3. 13.
이것이 취업을 위한 코딩 테스트다 CHAPTER 3 그리디 현재 상황에서 지금 당장 좋은 것만 고르는 방법 문제 2. 큰 수의 법칙 ''' Chapter 3. 그리디 : 큰 수의 법칙 접근법 1 (가장 큰 수를 K번 더하고 두번째 큰 수 1번 더하기)를 for문을 이용하여 반복하기 접근법 2 (가장 큰 수를 K번 더하고 두번째 큰 수 1번 더하기)를 반복 -> 반복 주기 (K+1) 가장 큰수를 더할 횟수 구하기 == (M-cnt) 두번째 큰 수 더할 횟수 == cnt 1사이클에 1번 cnt = M//(K+1) ''' import sys input = sys.stdin.readline # 배열의 크기, 숫자가 더해지는 횟수, 반복 가능 수 N,M,K = map(int,input().split()) # 배열 arr = list(map(int,input().split.. 2023. 3. 13.
[프로그래머스] 징검다리 건너기 - Python https://school.programmers.co.kr/learn/courses/30/lessons/64062 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 1명씩 뛰면 시간초과 100% i번째 돌을 밟을 수 있는지 체크 + 밟을 수 있다면 몇개 건너뛰고 밟았는지도 알아야함 탐색범위가 매우크다 이진 탐색!!!!! 만약 돌이 [5,5,3,5]이고 k가 2명 5명이 건널 수 있다. 최소 건널 수 있는 사람 수는 1 최대 건널 수 있는 사람 수는 max(stones) mid명이 건넌 후 mid+1번째 사람이 건널 수 있는지 확인 건널 수 있으면 사람을.. 2023. 3. 9.
이것이 취업을 위한 코딩 테스트다 CHAPTER 15 이진 탐색 문제 Q.27 정렬된 배열에서 특정 수의 개수 구하기 https://chaemi720.tistory.com/260 이코테 Q.27 정렬된 배열에서 특정 수의 개수 구하기 풀이1 시간복잡도 O(logN)으로 설계 오름차순으로 정렬된 수열에서 특정 수의 개수 구하기 이진 탐색 코드1 import sys input = sys.stdin.readline # 원소의 개수, 찾는 수 n, x = map(int,input().split()) # 원소 arr = chaemi720.tistory.com Q.28 고정점 찾기 https://chaemi720.tistory.com/264 이코테 Q.28 고정점 찾기 풀이 시간복잡도 O(logN)으로 설계 오름차순으로 정렬된 수열에서 특정 수의 개수 구하기 이진 탐색 시작위치, 마.. 2023. 3. 9.
이코테 Q.29 공유기 설치 2022년 6월 25일에 푼 코드 https://chaemi720.tistory.com/184 [백준] 2110. 공유기 설치 - Python https://www.acmicpc.net/problem/2110 2110번: 공유기 설치 첫째 줄에 집의 개수 N (2 ≤ N ≤ 200,000)과 공유기의 개수 C (2 ≤ C ≤ N)이 하나 이상의 빈 칸을 사이에 두고 주어진다. 둘째 줄부터 N개의 줄에는 집 chaemi720.tistory.com 2023년 3월 9일에 푼 코드 풀이 가장 인접한 두 공유기 사이의 거리를 가능한 크게 설치 탐색 범위가 큰 상황 이진 탐색 가능한 크게 설치이므로 이전 mid 기록해두기 8개월전과 코드 동일 코드 import sys input = sys.stdin.readlin.. 2023. 3. 9.
반응형