Python 160

[Level.0] 정사각형으로 만들기

문제 설명: 이차원 정수 배열 arr이 매개변수로 주어집니다. arr의 행의 수가 더 많다면 열의 수가 행의 수와 같아지도록 각 행의 끝에 0을 추가하고, 열의 수가 더 많다면 행의 수가 열의 수와 같아지도록 각 열의 끝에 0을 추가한 이차원 배열을 return 하는 solution 함수를 작성해 주세요. 제한사항1 ≤ arr의 길이 ≤ 1001 ≤ arr의 원소의 길이 ≤ 100arr의 모든 원소의 길이는 같습니다.1 ≤ arr의 원소의 원소 ≤ 1,000문제 해결def solution(arr): row = len(arr) col = len(arr[0]) if row > col: for ar in arr: ar.extend([0] * (row - col)..

[Level.0] 그림 확대

문제 설명: 직사각형 형태의 그림 파일이 있고, 이 그림 파일은 1 × 1 크기의 정사각형 크기의 픽셀로 이루어져 있습니다. 이 그림 파일을 나타낸 문자열 배열 picture과 정수 k가 매개변수로 주어질 때, 이 그림 파일을 가로 세로로 k배 늘린 그림 파일을 나타내도록 문자열 배열을 return 하는 solution 함수를 작성해 주세요. 제한사항1 ≤ picture의 길이 ≤ 201 ≤ picture의 원소의 길이 ≤ 20모든 picture의 원소의 길이는 같습니다.picture의 원소는 '.'과 'x'로 이루어져 있습니다.1 ≤ k ≤ 10문제 해결def solution(picture, k): answer = [] for pictur in picture: pict = '' ..

[Level.0] 구슬을 나누는 경우의 수

문제 설명: 머쓱이는 구슬을 친구들에게 나누어주려고 합니다. 구슬은 모두 다르게 생겼습니다. 머쓱이가 갖고 있는 구슬의 개수 balls와 친구들에게 나누어 줄 구슬 개수 share이 매개변수로 주어질 때, balls개의 구슬 중 share개의 구슬을 고르는 가능한 모든 경우의 수를 return 하는 solution 함수를 완성해주세요. 제한사항1 ≤ balls ≤ 301 ≤ share ≤ 30구슬을 고르는 순서는 고려하지 않습니다.share ≤ balls문제 해결def solution(balls, share): return factorial(balls) / (factorial(balls - share) * factorial(share))def factorial(n): result = 1 ..

[Level.0] 삼각형의 완성조건(2)

문제 설명: 선분 세 개로 삼각형을 만들기 위해서는 다음과 같은 조건을 만족해야 합니다.가장 긴 변의 길이는 다른 두 변의 길이의 합보다 작아야 합니다.삼각형의 두 변의 길이가 담긴 배열 sides이 매개변수로 주어집니다. 나머지 한 변이 될 수 있는 정수의 개수를 return하도록 solution 함수를 완성해주세요. 제한사항 sides의 원소는 자연수입니다.sides의 길이는 2입니다.1 ≤ sides의 원소 ≤ 1,000문제 해결def solution(sides): return sum(sides) - max(sides) + min(sides) - 1def solution(sides): return 2 * min(sides) - 1 논리 체크: 삼각형의 나머지 한 변을 x, 주어진 두 변..

[Level.0] 영어가 싫어요

문제 설명: 영어가 싫은 머쓱이는 영어로 표기되어있는 숫자를 수로 바꾸려고 합니다. 문자열 numbers가 매개변수로 주어질 때, numbers를 정수로 바꿔 return 하도록 solution 함수를 완성해 주세요. 제한사항numbers는 소문자로만 구성되어 있습니다.numbers는 "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" 들이 공백 없이 조합되어 있습니다.1 ≤ numbers의 길이 ≤ 50"zero"는 numbers의 맨 앞에 올 수 없습니다.문제 해결def solution(numbers): number = {'zero': '0', 'one': '1', 'two': '2', 'three': '3..

[Level.0] 수열과 구간 쿼리(2)

문제 설명: 정수 배열 arr와 2차원 정수 배열 queries이 주어집니다. queries의 원소는 각각 하나의 query를 나타내며, [s, e, k] 꼴입니다. 각 query마다 순서대로 s ≤ i ≤ e인 모든 i에 대해 k보다 크면서 가장 작은 arr[i]를 찾습니다. 각 쿼리의 순서에 맞게 답을 저장한 배열을 반환하는 solution 함수를 완성해 주세요. 단, 특정 쿼리의 답이 존재하지 않으면 -1을 저장합니다. 제한사항1 ≤ arr의 길이 ≤ 1,0000 ≤ arr의 원소 ≤ 1,000,0001 ≤ queries의 길이 ≤ 1,0000 ≤ s ≤ e 0 ≤ k ≤ 1,000,000문제 해결def solution(arr, queries): answer = [] for s, e, k..

[Level.0] 공 던지기

문제 설명: 머쓱이는 친구들과 동그랗게 서서 공 던지기 게임을 하고 있습니다. 공은 1번부터 던지며 오른쪽으로 한 명을 건너뛰고 그다음 사람에게만 던질 수 있습니다. 친구들의 번호가 들어있는 정수 배열 numbers와 정수 K가 주어질 때, k번째로 공을 던지는 사람의 번호는 무엇인지 return 하도록 solution 함수를 완성해보세요. 제한사항2 0 numbers의 첫 번째와 마지막 번호는 실제로 바로 옆에 있습니다.numbers는 1부터 시작하며 번호는 순서대로 올라갑니다.문제 해결def solution(numbers, k) return numbers[2*(k-1) % len(numbers)] 주석: 2칸씩 k-1번 이동한 위치를 원형 배열 인덱스 법칙(% len)으로 계산

[Level.0] 문자열 계산하기

문제 설명: my_string은 "3 + 5"처럼 문자열로 된 수식입니다. 문자열 my_string이 매개변수로 주어질 때, 수식을 계산한 값을 return 하는 solution 함수를 완성해주세요. 제한사항연산자는 +, -만 존재합니다.문자열의 시작과 끝에는 공백이 없습니다.0으로 시작하는 숫자는 주어지지 않습니다.잘못된 수식은 주어지지 않습니다.5 ≤ my_string의 길이 ≤ 100my_string을 계산한 결과값은 1 이상 100,000 이하입니다.my_string의 중간 계산 값은 -100,000 이상 100,000 이하입니다.계산에 사용하는 숫자는 1 이상 20,000 이하인 자연수입니다.my_string에는 연산자가 적어도 하나 포함되어 있습니다.return type 은 정수형입니다.my_..

[Level.0] 소인수분해

문제 설명: 소인수분해란 어떤 수를 소수들의 곱으로 표현하는 것입니다. 예를 들어 12를 소인수 분해하면 2 * 2 * 3 으로 나타낼 수 있습니다. 따라서 12의 소인수는 2와 3입니다. 자연수 n이 매개변수로 주어질 때 n의 소인수를 오름차순으로 담은 배열을 return하도록 solution 함수를 완성해주세요. 제한사항2 ≤ n ≤ 10,000문제 해결def solution(n): answer = [] divisor = 2 while divisor if n%divisor == 0: if divisor not in answer: answer.append(divisor) while n % divisor ==..

[Level.0] 컨트롤 제트

문제 설명: 숫자와 "Z"가 공백으로 구분되어 담긴 문자열이 주어집니다. 문자열에 있는 숫자를 차례대로 더하려고 합니다. 이 때 "Z"가 나오면 바로 전에 더했던 숫자를 뺀다는 뜻입니다. 숫자와 "Z"로 이루어진 문자열 s가 주어질 때, 머쓱이가 구한 값을 return 하도록 solution 함수를 완성해보세요. 제한사항1 ≤ s의 길이 ≤ 200-1,000 s는 숫자, "Z", 공백으로 이루어져 있습니다.s에 있는 숫자와 "Z"는 서로 공백으로 구분됩니다.연속된 공백은 주어지지 않습니다.0을 제외하고는 0으로 시작하는 숫자는 없습니다.s는 "Z"로 시작하지 않습니다.s의 시작과 끝에는 공백이 없습니다."Z"가 연속해서 나오는 경우는 없습니다.문제 해결def solution(s): stack = [..