파이썬 30

크기가 작은 부분문자열

숫자로 이루어진 문자열 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 n = len(p) for i in range(len(t)-n+1): parts = t[i:i+n] if parts t: "10203"p: "15"  ① n ..

삼총사 #combinations

한국중학교에 다니는 학생들은 각자 정수 번호를 갖고 있습니다. 이 학교 학생 3명의 정수 번호를 더했을 때 0이 되면 3명의 학생은 삼총사라고 합니다. 예를 들어, 5명의 학생이 있고, 각각의 정수 번호가 순서대로 -2, 3, 0, 2, -5일 때, 첫 번째, 세 번째, 네 번째 학생의 정수 번호를 더하면 0이므로 세 학생은 삼총사입니다. 또한, 두 번째, 네 번째, 다섯 번째 학생의 정수 번호를 더해도 0이므로 세 학생도 삼총사입니다. 따라서 이 경우 한국중학교에서는 두 가지 방법으로 삼총사를 만들 수 있습니다.한국중학교 학생들의 번호를 나타내는 정수 배열 number가 매개변수로 주어질 때, 학생들 중 삼총사를 만들 수 있는 방법의 수를 return 하도록 solution 함수를 완성하세요.def s..

이상한 문자 만들기

문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요.제한 사항 문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다. 첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다.def solution(s): answer = '' s_list = s.split(' ') for i in s_list: for j in range(len(i)): if j % 2 ==0 : answer += i[j].up..

직사각형 별찍기

이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어집니다.별(*) 문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태를 출력해보세요.n, m = map(int, input().strip().split(' '))for i in range(m): print('*'*n)     ①n, m = map(int, input().strip().split(' ')) # input() 에 5 3 이 들어가게 되면# stirp() 로 좌우의 공백을 제거하여 5 3 으로 추출# split(' ') 로 5와 3을 각각 문자열로 나누어준다.# map() 함수에 int 형을 사용하여 문자열을 정수형으로 바꾸어 준다.  > n = 5> m = 3 ② for i in range(m): print('*..

[python] return 과 print 의 차이?

* return 과 print 의 차이는? # return 은 밖으로 끄집어내서 무언가에 담을 수 있다.# print 는 그냥 출력만 해주고 끝난다. 보여주기만 함, 담을 수가 없다! data = [2, 4, 6, 8, 10]class DataPreprocessor: def __init__(self, data): self.data = data def calculation(self): print(f"평균:{sum(data)/len(data)}") # print 는 그냥 보여주고 끝난다dab = DataPreprocessor(data)result = dab.calculation()# dab.calculation() 이 있어서 나옴> 평균: 6.0dab.cal..

개인공부 2024.04.26

행렬의 덧셈 #list(map(lambda 매개변수:표현식),반복)

행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요.def solution(arr1, arr2): answer = [] for i in range(len(arr1)): answer.append(list(map((lambda x,y : x+y), arr1[i],arr2[i]))) return answerarr1 = [[1,2],[2,3]]arr2 = [[3,4],[5,6]] ① answer = []# 빈 리스트 생성 ② for i in range(len(arr1)):# arr1 의 길..

약수의 개수와 덧셈

두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요. def solution(left, right): answer = 0 for i in range(left,right+1): count = 0 for n in range(1,i+1): if i%n == 0: count += 1 if count %2 == 0: answer += i else: answer -= i return answer ① for i in range(left,right+1): # left 부터 right 까지의 수를 반복하는 i 를 생성 # left = 13 ri..

내적 # zip()

길이가 같은 두 1차원 정수 배열 a, b가 매개변수로 주어집니다. a와 b의 내적을 return 하도록 solution 함수를 완성해주세요. 이때, a와 b의 내적은 a[0]*b[0] + a[1]*b[1] + ... + a[n-1]*b[n-1] 입니다. (n은 a, b의 길이) def solution(a, b): answer = [x*y for x,y in zip(a,b)] result = sum(answer) return result ① answer = [x*y for x,y in zip(a,b)] # zip() 함수를 사용하여 a와 b 리스트를 엮어준다 # 엮은 리스트에서 x 와 y로 임의의 값을 주고 x*y 를 계산해준다 # 계산한 값은 리스트 인수로 반환 ② result = sum(answer)..

가운데 글자 가져오기 # 슬라이싱

단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다. s는 길이가 1 이상, 100이하인 스트링입니다. def solution(s): answer = '' if len(s) % 2 == 0: answer = s[len(s) // 2 - 1 : len(s) //2 + 1] else: answer = s[len(s) // 2] return answer ① if len(s) % 2 == 0: # s 의 길이가 짝수일때 ② answer = s[len(s) // 2 - 1 : len(s) //2 + 1] # 인덱스를 출력하기 위해 len(s)//2 이렇게 나눈 몫으로 인덱스의 값을 반환 중간 값을 구해주기 때문에 2로 나누어준다!! 5..

제일 작은 수 제거하기 # del , remove(), min()

정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴 하고, [10]면 [-1]을 리턴 합니다. arr은 길이 1 이상인 배열입니다. 인덱스 i, j에 대해 i ≠ j이면 arr[i] ≠ arr[j] 입니다. def solution(arr): if len(arr)==1: del arr[0] arr.append(-1) elif len(arr)>=2: arr.remove(min(arr)) return arr ① if len(arr)==1: # arr의 길이가 1일 경우 (숫자가 1개만 있을 경우에는 -1 을 반환..