분류 전체보기(332)
-
프로그래머스 택배상자 파이썬(python)
링크 제목https://school.programmers.co.kr/learn/courses/30/lessons/131704 풀이1, 2, 3, ... n 순컨베이어 벨트 일렬1번부터 상자를 내릴 수 있음 미리 알려준 순서에 맞게 if (맨앞상자 != 트럭실어야한순): 보조 컨테이너 벨트에 보관 맨앞 상자만 뺄 수 있음 (= 가장 마지막 보조컨테이너벨트에 보관한 상자부터 꺼내게 됨) if 보조컨베이어벨트이용 -> 원하는 순서X: 더이상 싣지 않는다 order: 택배 기사님이 원하는 상자 순서를 나타내는 정수 배열sbelt: 보조 컨테이너 벨트(sub container belt)에 있는 상자cbelt: 컨테이너 벨트(container belt)에 있는 상자..
2024.07.15 -
프로그래머스 쿼드압축 후 개수 세기 파이썬
문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/68936풀이먼저, 이차원배열을 배열로 변환한다.그 후 dfs를 이용하여 탐색한다. minimize 압축함수 (=dfs함수)i)arr의 전체 원소가 모두 0이거나 1이면그 원소에 해당하는 개수를 1 더해준다. ii)arr의 원소가 4이면0의 갯수, 1의 갯수를 각각 더해준다. i),ii)에 해당하지 않는 경우arr을 4개 영역으로 분리한다.그리고 4개의 영역을 각각 탐색한다. 전체 코드def solution(arr): def minimize(arr): n = len(arr) if arr.count(arr[0]) == n: ans[arr[0..
2024.07.15 -
프로그래머스 Lv.2 카펫 파이썬
문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/42842풀이카펫의 가로 길이를 a, 카펫의 세로 길이를 b라고 하자.(직사각형의 넓이) = a * b = brown + yellow(a - 2) * (b - 2) = yellow위 식을 통해 a, b를 brown, yellow로 표현해보자.a * b - 2 * (a + b) + 4 = yellowbrown + yellow - 2 * (a + b) + 4 = yellowbrown + 4 = 2 * (a + b)a + b = brown / 2 + 2 이를 통해 p = a + b = brown / 2 + 2q = a * b = brown + yellow임을 알 수 있다. 해를 a,b로 하는 방정식..
2024.07.10 -
프로그래머스 Lv.1 최소직사각형 파이썬
문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/86491풀이sizes에서 각 size의 가로, 세로중 큰 값을 가로, 작은 값을 세로로 하여가로 size들의 리스트(x_sizes) , 세로 size들의 리스트(y_sizes)를 만든다.최소 지갑의 영역 = (x_sizes중 제일 큰 값) * (y_sizes 중 제일 큰 값)전체 코드def solution(sizes): answer = 0 x_sizes = [] y_sizes = [] for size in sizes: size.sort(reverse=True) x_sizes.append(size[0]) y_sizes.append(si..
2024.07.10 -
프로그래머스 Lv.2 H-Index 파이썬
문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/42747풀이어떤 과학자가 발표한 논문 n편 중, h번 이상 인용된 논문이 h편 이상이고 나머지 논문이 h번 이하 인용되었다면 h의 최댓값이 이 과학자의 H-Index이다. 우선 논문을 내림차순으로 정렬한다.H-index의 값을 h로 한다면0번째 ~ (h-1)번째는 h값보다 클 것이다.h번째부터 마지막번째는 h값 이하일 것이다. 예시)citations = [3,0,1,6,5] citations를 내림차순으로 정렬하면citations = [6,5,3,1,0] citations[0] = 6 > 0citations[1] = 5 > 1citations[2] = 3 > 2citations[3] = 1 ..
2024.07.10 -
프로그래머스 Lv.3 디스크 컨트롤러 파이썬(Python)
문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/42627?itm_content=course14743 풀이문제에 앞서 요청이 들어온 순서대로 처리한다면 어떤 코드를 짜야 할까?각 job의 원소는 [call, spend]로 구성된다.call: 요청시작 시간spend: 소요 시간각 작업의 현재 시간(now) += 작업의 소요 시간(spend)요청부터 종료까지 걸린 시간 = now - call이를 이용하면 다음의 코드를 구할 수 있다.def solution(jobs): answer = 0 now = 0 realSpends = [] for call, spend in jobs: now += spend ..
2024.07.10