본문 바로가기

분류 전체보기

(440)
[완전탐색] 프로그래머스 L1 '모의고사' (Python) https://programmers.co.kr/learn/courses/30/lessons/42840 코딩테스트 연습 - 모의고사 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 programmers.co.kr 반복문 사용. 패턴을 answers 길이에 맞춤. 문제가 1개~10,000개일 경우 계산 채점할 수 있는 변수 필요. 가장 많이 맞춘 사람 걸러내기 #1차 시도 --> 몇개의 테스트케이스 실패 def solution(answers): answer = [] a1, a2, a3 = [],[],[] j=1 for i in answers: if i==j: a1.appe..
[알고리즘] 완전탐색(순차탐색)/이분탐색(이진탐색) 완전 탐색(=Brute Force) / 순차 탐색(=Sequential Search) 컴퓨터의 빠른 계산 성능을 활용하여 가능한 모든 경우의 수를 탐색하는 효율성 관점에서 최악의 방법 리스트 안에 있는 특정한 데이터를 찾기 위해 앞에서부터 데이터를 하나씩 차례대로 확인하는 방법 시간 복잡도 : O(N) = 선형 복잡도 = 입력값이 증가함에 따라 시간 또한 같은 비율로 증가하는 것 [반복문] def solution(trump): for i in range(len(trump)): if trump[i]==8: return i return -1 def sequential_search(n, target, array): for i in range(n): if array[i] == target: return i+1 ..
[큐] 프로그래머스 L2 '다리를 지나는 트럭' (Python) https://programmers.co.kr/learn/courses/30/lessons/42583 코딩테스트 연습 - 다리를 지나는 트럭 트럭 여러 대가 강을 가로지르는 일차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 다리에는 트럭이 최대 bridge_length대 올라갈 programmers.co.kr Queue 사용 def solution(bridge_length, weight, truck_weights): Q = [0] * bridge_length total_weight = 0 time = 0 while truck_weights: total_weight -= Q.pop(0) if total_weight + truck_weights..
[큐] 프로그래머스 L2 '기능개발' (Python) https://programmers.co.kr/learn/courses/30/lessons/42586 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr 100이 될 때까지 while문? speeds를 100이 될 때까지 더하는 for문? progresses가 100이 되면 answer +=1 하고 순서대로 삭제 #1차시도 : 1,5 런타임에러, 2 실패 def solution(progresses, speeds): queue = [] finish = [] for i in range(len(progresse..
[스택] 프로그래머스 L2 '주식가격' (Python) https://programmers.co.kr/learn/courses/30/lessons/42584 코딩테스트 연습 - 주식가격 초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. 제한사항 prices의 각 가격은 1 이상 10,00 programmers.co.kr prices의 길이만큼 시간이 지남 스택으로 사용할 타이머 생성 #1차시도 : 2,3,4,5,6,7,8,9,10 & 효율성테스트 실패 def solution(prices): stack = [0] answer = [0] * len(prices) for i in range(1,len(prices)): if prices[i] ..
[자료구조/알고리즘] 배열(Array)/큐(Queue)/스택(Stack) 배열 (Array) * 데이터를 나열하고, 각 데이터를 인덱스에 대응하도록 구성한 데이터 구조 * 파이썬에서는 리스트 타입이 배열 기능을 제공함 [배열은 왜 필요할까?] 같은 종류의 데이터를 효율적으로 관리하기 위해 사용 같은 종류의 데이터를 순차적으로 저장 장점 빠른 접근 가능 첫 데이터의 위치에서 상대적인 위치로 데이터 접근(인덱스 번호로 접근) 단점 데이터 추가/삭제의 어려움 미리 최대 길이를 지정해야 함 큐 (Queue) [큐 구조] * 줄을 서는 행위와 유사 * 가장 먼저 넣은 데이터를 가장 먼저 꺼낼 수 있는 구조 - 음식점에서 가장 먼저 줄을 선 사람이 제일 먼저 음식점에 입장하는 것과 동일 - FIFO(First-In, First-Out) 또는 LILO(Last-In, Last-Out) 방..
[탐욕법] 프로그래머스 L1 '체육복' (Python) https://programmers.co.kr/learn/courses/30/lessons/42862 코딩테스트 연습 - 체육복 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번 programmers.co.kr 체육복을 잃어버린 학생이 여벌의 체육복이 있을 수 있다는 조건을 생각해야 함 1번의 학생이 있다면 lost와 reserve에 있는 학생 번호를 지움 체육수업을 들을 수 있는 학생을 구해야 하므로, 체육복을 잃어버린 학생 수를 제외하고 결괏값을 도출 (set 또는 for문을 사용할 수 있다) 주어진 배열이 정렬되어있지 않을 수 있으므로 정렬 여벌의 체육복을 가진 학..
[탐욕법] 난이도1, 2019 국가 교육기관 코딩 테스트 '큰 수의 법칙' (Python) '큰 수의 법칙'은 일반적으로 통계 분야에서 다루어지는 내용이지만 동빈이는 본인만의 방식으로 다르게 사용하고 있다. 동빈이의 큰 수의 법칙은 다양한 수로 이루어진 배열이 있을 때 주어진 수들을 M번 더하여 가장 큰 수를 만드는 방법이다. 단, 배열의 특정한 인덱스(번호)에 해당하는 수가 연속해서 K번을 초과하여 더해질 수 없는 것이 이 법칙의 특징이다. 예를 들어 순서대로 2, 4, 5, 4, 6으로 이루어진 배열이 있을 때, M이 8이고 K가 3이라고 가정하자. 이 경우 특정한 인덱스의 수가 연속해서 세 번까지만 더해질 수 있으므로 큰 수의 법칙에 따른 결과는 6 + 6 + 6 + 5 + 6 + 6 + 6 + 5인 46이 된다. 단, 서로 다른 인덱스에 해당하는 수가 같은 경우에도 서로 다른 것으로 간..

LIST