반응형

코딩테스트/프로그래머스 20

[프로그래머스] Python3 배열 조각하기

문제 설명 정수 배열 arr와 query가 주어집니다. query를 순회하면서 다음 작업을 반복합니다. 짝수 인덱스에서는 arr에서 query[i]번 인덱스를 제외하고 배열의 query[i]번 인덱스 뒷부분을 잘라서 버립니다. 홀수 인덱스에서는 arr에서 query[i]번 인덱스는 제외하고 배열의 query[i]번 인덱스 앞부분을 잘라서 버립니다. 위 작업을 마친 후 남은 arr의 부분 배열을 return 하는 solution 함수를 완성해 주세요. def solution(arr, query): answer = arr for i in range(len(query)): if i % 2 ==0 : answer = answer[0:query[i]+1] else : answer = answer[query[i]:..

[프로그래머스] Python3 2의 영역

문제 설명 정수 배열 arr가 주어집니다. 배열 안의 2가 모두 포함된 가장 작은 연속된 부분 배열을 return 하는 solution 함수를 완성해 주세요. 단, arr에 2가 없는 경우 [-1]을 return 합니다. def solution(arr): answer = [] min_index = 0 max_index = 0 count = False for i in range(len(arr)): if arr[i] == 2: min_index = arr.index(2) count = True min_index = min(min_index,i) max_index = max(max_index,i) else : pass if count : for i in range(min_index, max_index+1): ..

[프로그래머스] Python3 배열 만들기 3

문제 설명 정수 배열 arr와 2개의 구간이 담긴 배열 intervals가 주어집니다. intervals는 항상 [[a1, b1], [a2, b2]]의 꼴로 주어지며 각 구간은 닫힌 구간입니다. 닫힌 구간은 양 끝값과 그 사이의 값을 모두 포함하는 구간을 의미합니다. 이때 배열 arr의 첫 번째 구간에 해당하는 배열과 두 번째 구간에 해당하는 배열을 앞뒤로 붙여 새로운 배열을 만들어 return 하는 solution 함수를 완성해 주세요. def solution(arr, intervals): answer = [] for i in range(len(intervals)): for j in range(intervals[i][0],intervals[i][1]+1): answer.append(arr[j]) ret..

[프로그래머스] Python3 리스트 자르기

문제 설명 정수 n과 정수 3개가 담긴 리스트 slicer 그리고 정수 여러 개가 담긴 리스트 num_list가 주어집니다. slicer에 담긴 정수를 차례대로 a, b, c라고 할 때, n에 따라 다음과 같이 num_list를 슬라이싱 하려고 합니다. n = 1 : num_list의 0번 인덱스부터 b번 인덱스까지 n = 2 : num_list의 a번 인덱스부터 마지막 인덱스까지 n = 3 : num_list의 a번 인덱스부터 b번 인덱스까지 n = 4 : num_list의 a번 인덱스부터 b번 인덱스까지 c 간격으로 올바르게 슬라이싱한 리스트를 return하도록 solution 함수를 완성해주세요. def solution(n, slicer, num_list): answer = [] if n == 1:..

[프로그래머스] 코딩테스트 AI Report

코딩테스트 D-3.. 발등에 불똥도 아닌 불족발이 되어버린 나.. 평소 코테라면 SQL 빼고는 응애인 나 프로그래머스라도 차근차근 풀고 있는데 새로운 기능을 발견했다. AI가 내가 푼 문제를 기반으로 추천을 해 주는듯 싶어 들어갔다. 이렇게 계속 문제를 풀면 풀었던 문제를 바탕으로 통계를 내주고, 내가 사용자들 중 어느정도인지 알고리즘 카테고리 별로도 상세 분석을 제공해준다. 문제를 풀다보면 종합점수가 올라 있는것을 확인 할 수 있었다. 제일 좋았던 점은 AI 추천 문제인데, 나는 아직 어떤문제를 풀어야하는지 같은 레벨이라도 체감상 난이도 차이가 많이 난다고 느껴져서 추천 문제로 공부를 이어나가는 것이 편하다고 느껴졌다. 프로그래머스는 깔끔하고 정돈이 잘되어있어서 애용하는데 새로운 기능이 생겨서 더 좋은..

[프로그래머스] Python3 행렬의 덧셈

문제 설명 선분 세 개로 삼각형을 만들기 위해서는 다음과 같은 조건을 만족해야 합니다. 가장 긴 변의 길이는 다른 두 변의 길이의 합보다 작아야 합니다. 삼각형의 두 변의 길이가 담긴 배열 sides이 매개변수로 주어집니다. 나머지 한 변이 될 수 있는 정수의 개수를 return하도록 solution 함수를 완성해주세요. def solution(arr1, arr2): answer = [] tmp = [] for i in range(len(arr1)): for j in range(len(arr1[i])): tmp.append(arr1[i][j]+arr2[i][j]) answer.append(list(tmp)) tmp=[] return answer

[프로그래머스] Python3 삼각형의 완성조건 (2)

문제 설명 선분 세 개로 삼각형을 만들기 위해서는 다음과 같은 조건을 만족해야 합니다. 가장 긴 변의 길이는 다른 두 변의 길이의 합보다 작아야 합니다. 삼각형의 두 변의 길이가 담긴 배열 sides이 매개변수로 주어집니다. 나머지 한 변이 될 수 있는 정수의 개수를 return하도록 solution 함수를 완성해주세요. def solution(sides): answer = 0 max_num = max(sides) min_num = min(sides) sum_num = sum(sides) # case 1 가장 긴 변이 sides의 큰 수 일 경우 for i in range(1, max_num+1): if i+min_num > max_num: answer = answer + 1 # case 2 가장 긴 변..

[프로그래머스] Python3 최소직사각형

문제 설명 명함 지갑을 만드는 회사에서 지갑의 크기를 정하려고 합니다. 다양한 모양과 크기의 명함들을 모두 수납할 수 있으면서, 작아서 들고 다니기 편한 지갑을 만들어야 합니다. 이러한 요건을 만족하는 지갑을 만들기 위해 디자인팀은 모든 명함의 가로 길이와 세로 길이를 조사했습니다. 아래 표는 4가지 명함의 가로 길이와 세로 길이를 나타냅니다. 명함 번호 가로 길이 세로 길이 1 60 50 2 30 70 3 60 30 4 80 40 가장 긴 가로 길이와 세로 길이가 각각 80, 70이기 때문에 80(가로) x 70(세로) 크기의 지갑을 만들면 모든 명함들을 수납할 수 있습니다. 하지만 2번 명함을 가로로 눕혀 수납한다면 80(가로) x 50(세로) 크기의 지갑으로 모든 명함들을 수납할 수 있습니다. 이때..

[프로그래머스] Python3 가장 가까운 글자

문제 설명 문자열 s가 주어졌을 때, s의 각 위치마다 자신보다 앞에 나왔으면서, 자신과 가장 가까운 곳에 있는 같은 글자가 어디 있는지 알고 싶습니다. 예를 들어, s="banana"라고 할 때, 각 글자들을 왼쪽부터 오른쪽으로 읽어 나가면서 다음과 같이 진행할 수 있습니다. b는 처음 나왔기 때문에 자신의 앞에 같은 글자가 없습니다. 이는 -1로 표현합니다. a는 처음 나왔기 때문에 자신의 앞에 같은 글자가 없습니다. 이는 -1로 표현합니다. n은 처음 나왔기 때문에 자신의 앞에 같은 글자가 없습니다. 이는 -1로 표현합니다. a는 자신보다 두 칸 앞에 a가 있습니다. 이는 2로 표현합니다. n도 자신보다 두 칸 앞에 n이 있습니다. 이는 2로 표현합니다. a는 자신보다 두 칸, 네 칸 앞에 a가 있..

[프로그래머스] Python3 크기가 작은 부분문자열

문제 설명 숫자로 이루어진 문자열 t와 p가 주어질 때, t에서 p와 길이가 같은 부분문자열 중에서, 이 부분문자열이 나타내는 수가 p가 나타내는 수보다 작거나 같은 것이 나오는 횟수를 return하는 함수 solution을 완성하세요. 예를 들어, t="3141592"이고 p="271" 인 경우, t의 길이가 3인 부분 문자열은 314, 141, 415, 159, 592입니다. 이 문자열이 나타내는 수 중 271보다 작거나 같은 수는 141, 159 2개 입니다. def solution(t, p): answer = 0 t_subset = [] start_count=0 while start_count

728x90
반응형