본문 바로가기
728x90

알고리즘8

[프로그래머스] 기능개발 - javascript https://programmers.co.kr/learn/courses/30/lessons/42586?language=javascript 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr 현재 개발이 진행중인 프로그램의 배열이 빌때까지 반복문을 돌아줍니다 개발 속도를 1회 반복할때마다 전부 저해주고, 0번 인덱스의 개발이 완료되었으면 배열에서 제거하고 다시 0번인덱스를 화인하여 0번인덱스의 기능이 개발이 왼료되지 않았을때까지 제거하고 카운트를 더해줍니다. 카운트가 0보다 크다면 정답배열에 카운트를 넣어줍.. 2022. 2. 14.
[프로그래머스] 다리를 지나는 트럭 - javascript https://programmers.co.kr/learn/courses/30/lessons/42583?language=javascript 코딩테스트 연습 - 다리를 지나는 트럭 트럭 여러 대가 강을 가로지르는 일차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 다리에는 트럭이 최대 bridge_length대 올라갈 programmers.co.kr 다리의 길이 만큼 배열을 만들고 0으로 채워줍니다. 배열이 빌때까지 반복문을 돌립니다. 이때 다리의 길이가 없어서 못건너간다면 반복문을 탈출하고 바로 정답 0을 리턴합니다. 다리의 길이가 있고 지나갈수잇을 확률이 있다면 정답 변수를 +1 해줍니다. 다리의 현재 올라가있는 트럭의 무게를 파악하기 위해 .. 2022. 1. 27.
[swjungle 2기] 백준 1535 안녕 1535번: 안녕 첫째 줄에 사람의 수 N( 2021. 8. 30.
[swjungle 2기] 그리디 알고리즘 (탐욕법) 그리디 알고리즘 그리디 알고리즘(탐욕법)은 현재 상황에서 지금 당장 좋은 것만 고르는 방법을 의미합니다. 일반적인 그리디 알고리즘은 문제를 풀기 위한 최소환의 아이디어를 떠올릴 수 있는 능력을 요구합니다. 그리디 해법은 그 정당성 분석이 중요합니다. 단순히 가장 좋아 보이는 것을 반복적으로 선택해도 최적의 해를 구할 수 있는지 검토합니다. 일반적인 상황에서 그리디 알고리즘은 최적의 해를 보장할 수 없을 때가 많습니다. 하지만 코딩 테스트에서의 대부분의 그리디 문제는 탐욕법으로 얻은 해가 최적의 해가 되는 상황에서, 이를 추론할 수 있어야 풀리도록 출제됩니다. 예제 거스름돈 당신은 음식점의 계산을 도와주는 점원입니다. 카운터에는 거스름돈으로 사용할 500원, 100원, 50원, 10원짜리 동전이 무한이 존.. 2021. 8. 28.
[swjungle 2기] 도둑! 배낭? Knapsack Problem(배낭문제, 냅색) Knapsack (배낭 문제) Knapsack(배낭) 문제는 DP의 대표적인 문제 유형중 하나입니다. 배낭이 있고 배낭에 담을 수 있는 최대 무게가 주어집니다. 배낭에 담을 수 있는 물품들도 주어지는데, 각각 무게와 benefit(가치)가 다릅니다. 이 문제의 목표는 **배낭에 담을 수 있을 만큼 물품들을 넣었을 때 benefit(가치)가 최대가 되는 짐을 고르는 것입니다. 단, 물품들을 쪼갤 수 없다고 가정합니다. 쪼갤수 없다고 가정한 문제를 0-1 knapsack problem이라고 부릅니다. 물품들을 쪼갤 수 있다고 가정해서 푸는 knapsack 문제는 fractional knapsack problem이라고 부릅니다. 예제 배낭의 최대 무게는 5 (무게, 가치) 형태의 물품 4개 (2, 3) (3,.. 2021. 8. 27.
[swjungle 2기] 백준 2617 구슬 찾기 백준 2617 구슬 찾기(dfs) dfs로 풀이하였고 특정 구슬보다 높은 구슬의 배열과 낮은 구슬의 배열 2개를 만들어서 갯수를 구해줘었습니다. 특정 구슬보다 높은 구슬의 갯수 또는 낮은 구슬의 갯수가 mid = (n+1)//2 이상이면 중간 무게의 구슬이 될수 없어 정답에 추가해 주었습니다. 의문점은 높은 구슬의 갯수와 낮은 구슬의 갯수가 모두 mid보다 높은 가능성이 있었나? 였습니다. import sys n, m = map(int, sys.stdin.readline().split()) low = [[] for _ in range(n + 1)] high = [[] for _ in range(n + 1)] for i in range(m): x, y = map(int, sys.stdin.readline(.. 2021. 8. 24.
728x90