본문 바로가기

CodeGym

(19)
[프로그래머스] 전력망을 둘로 나누기 | 파이썬 문제설명더보기n개의 송전탑이 전선을 통해 하나의 트리 형태로 연결되어 있습니다. 당신은 이 전선들 중 하나를 끊어서 현재의 전력망 네트워크를 2개로 분할하려고 합니다. 이때, 두 전력망이 갖게 되는 송전탑의 개수를 최대한 비슷하게 맞추고자 합니다.송전탑의 개수 n, 그리고 전선 정보 wires가 매개변수로 주어집니다. 전선들 중 하나를 끊어서 송전탑 개수가 가능한 비슷하도록 두 전력망으로 나누었을 때, 두 전력망이 가지고 있는 송전탑 개수의 차이(절대값)를 return 하도록 solution 함수를 완성해주세요. 제한사항더보기n은 2 이상 100 이하인 자연수입니다.wires는 길이가 n-1인 정수형 2차원 배열입니다.wires의 각 원소는 [v1, v2] 2개의 자연수로 이루어져 있으며, 이는 전력망의..
[프로그래머스] 124 나라의 숫자 | 파이썬 문제설명더보기124 나라가 있습니다. 124 나라에서는 10진법이 아닌 다음과 같은 자신들만의 규칙으로 수를 표현합니다.124 나라에는 자연수만 존재합니다.124 나라에는 모든 수를 표현할 때 1, 2, 4만 사용합니다.예를 들어서 124 나라에서 사용하는 숫자는 다음과 같이 변환됩니다.자연수 n이 매개변수로 주어질 때, n을 124 나라에서 사용하는 숫자로 바꾼 값을 return 하도록 solution 함수를 완성해 주세요. 제한사항더보기n은 50,000,000이하의 자연수 입니다. 입출력 예문제풀이10진법을 3진법으로 바꾸는 과정에서 3의 배수인 경우에만 기존의 진법 변환과 같이 자리수가 변하는 것이 아니라 2 -> 4로 숫자가 증가하는 방식으로 숫자를 count 하며 자리수는 유지하게 된다. 이 방..
[프로그래머스] 연속된 부분 수열의 합 | 파이썬 문제설명더보기비내림차순으로 정렬된 수열이 주어질 때, 다음 조건을 만족하는 부분 수열을 찾으려고 합니다.기존 수열에서 임의의 두 인덱스의 원소와 그 사이의 원소를 모두 포함하는 부분 수열이어야 합니다.부분 수열의 합은 k입니다.합이 k인 부분 수열이 여러 개인 경우 길이가 짧은 수열을 찾습니다.길이가 짧은 수열이 여러 개인 경우 앞쪽(시작 인덱스가 작은)에 나오는 수열을 찾습니다.수열을 나타내는 정수 배열 sequence와 부분 수열의 합을 나타내는 정수 k가 매개변수로 주어질 때, 위 조건을 만족하는 부분 수열의 시작 인덱스와 마지막 인덱스를 배열에 담아 return 하는 solution 함수를 완성해주세요. 이때 수열의 인덱스는 0부터 시작합니다. 제한사항더보기5 ≤ sequence의 길이 ≤ 1,0..
[프로그래머스] 호텔 대실 | 파이썬 문제설명더보기호텔을 운영 중인 코니는 최소한의 객실만을 사용하여 예약 손님들을 받으려고 합니다. 한 번 사용한 객실은 퇴실 시간을 기준으로 10분간 청소를 하고 다음 손님들이 사용할 수 있습니다.예약 시각이 문자열 형태로 담긴 2차원 배열 book_time 이 매개변수로 주어질 때, 코니에게 필요한 최소 객실의 수를 return 하는 solution 함수를 완성해주세요. 제한사항더보기1 ≤ book_time의 길이 ≤ 1,000book_time[i]는 ["HH:MM", "HH:MM"]의 형태로 이루어진 배열입니다[대실 시작 시각, 대실 종료 시각] 형태입니다.시각은 HH:MM 형태로 24시간 표기법을 따르며, "00:00" 부터 "23:59" 까지로 주어집니다.예약 시각이 자정을 넘어가는 경우는 없습니다..
[프로그래머스] 시소 짝꿍 | 파이썬 문제설명더보기어느 공원 놀이터에는 시소가 하나 설치되어 있습니다. 이 시소는 중심으로부터 2(m), 3(m), 4(m) 거리의 지점에 좌석이 하나씩 있습니다.이 시소를 두 명이 마주 보고 탄다고 할 때, 시소가 평형인 상태에서 각각에 의해 시소에 걸리는 토크의 크기가 서로 상쇄되어 완전한 균형을 이룰 수 있다면 그 두 사람을 시소 짝꿍이라고 합니다. 즉, 탑승한 사람의 무게와 시소 축과 좌석 간의 거리의 곱이 양쪽 다 같다면 시소 짝꿍이라고 할 수 있습니다.사람들의 몸무게 목록 weights이 주어질 때, 시소 짝꿍이 몇 쌍 존재하는지 구하여 return 하도록 solution 함수를 완성해주세요. 제한사항더보기2 ≤ weights의 길이 ≤ 100,000100 ≤ weights[i] ≤ 1,000몸무게..
[프로그래머스] [PCCE 기출문제] 10번 / 데이터 분석 | 파이썬 문제설명더보기AI 엔지니어인 현식이는 데이터를 분석하는 작업을 진행하고 있습니다. 데이터는 ["코드 번호(code)", "제조일(date)", "최대 수량(maximum)", "현재 수량(remain)"]으로 구성되어 있으며 현식이는 이 데이터들 중 조건을 만족하는 데이터만 뽑아서 정렬하려 합니다.예를 들어 다음과 같이 데이터가 주어진다면,data = [[1, 20300104, 100, 80], [2, 20300804, 847, 37], [3, 20300401, 10, 8]]이 데이터는 다음 표처럼 나타낼 수 있습니다.codedatemaximumremain1203001041008022030080484737320300401108주어진 데이터 중 "제조일이 20300501 이전인 물건들을 현재 수량이 적은 ..
[프로그래머스] 큰 수 만들기 | 파이썬 문제설명더보기어떤 숫자에서 k개의 수를 제거했을 때 얻을 수 있는 가장 큰 숫자를 구하려 합니다.예를 들어, 숫자 1924에서 수 두 개를 제거하면 [19, 12, 14, 92, 94, 24] 를 만들 수 있습니다. 이 중 가장 큰 숫자는 94 입니다.문자열 형식으로 숫자 number와 제거할 수의 개수 k가 solution 함수의 매개변수로 주어집니다. number에서 k 개의 수를 제거했을 때 만들 수 있는 수 중 가장 큰 숫자를 문자열 형태로 return 하도록 solution 함수를 완성하세요. 제한사항더보기number는 2자리 이상, 1,000,000자리 이하인 숫자입니다.k는 1 이상 number의 자릿수 미만인 자연수입니다. 입출력 예문제풀이이 문제는 파이썬으로 풀때는 주어진 사항을 따라서 ..
[프로그래머스] 키패드 누르기 | 파이썬 문제설명더보기 제한사항더보기 입출력 예문제풀이별다른 개념이 들어간 문제는 아니었지만 문제를 해결하는데 필요한 설계가 까다로운 문제였다. 우선 키패드 모양을 좌표와 배열로 구현할 수 있어야 하며 눌러야하는 키패드의 위치를 하나씩 확인하면서 어느 손으로 눌러야 할지를 정한다. 이때 손을 결정하는 기준은 우선적으로는 가까이 있는 손을 선택하며 거리가 같을 경우 hand 변수에 주어진 손이 우선권을 가지고 누르게 된다.처음에는 문제에서 접근하는 방식을 표로 잘 설명해 주었는데 이때 사용된 왼손, 오른손 위치와 눌러야 하는 키의 위치를 기반으로 어떠한 손으로 누르는지를 잘 확인할 필요가 있다. 그리고 키패드를 누르고 나면 해당 손의 위치를 그곳으로 이동시켜주는 것도 빠져서는 안된다.(그래서 조건문 분기를 타면 버..