본문 바로가기

알고리즘99

프로그래머스 Lv1 크기가 작은 부분 문자열 (python) 크기가 작은 부분 문자열 풀이 t의 길이는 p보다 크거나 같고, 숫자로 이루어진 문자 t중에서 p와 길이는 같지만 값은 p이하인 수의 갯수를 찾아내야한다. 그래서 슬라이싱을 이용해서 문제를 풀어보았다. # p와 같은 길이로, t 중 p보다 작거나 같은 숫자가 나오는 횟수를 return # len(t)-len(p)+1까지 for문을 돌리기 def solution(t, p): answer = 0 for i in range(len(t)-len(p)+1): # 길이가 p와 같은 녀석을 찾아야하니 슬라이싱 이용 if int(t[i:i+len(p)]) = int(t[i:i+len(p)]): answer += 1 return answer 2024. 1. 29.
SWEA D2 1859. 백만 장자 프로젝트 (python) 백만 장자 프로젝트 풀이 연속된 N일 동안 물건의 매매가를 알고 있고, 이를 이용해 미리 사고파는 작업을 하려 한다. 당국의 감시망에 걸리지 않기 위해 1만큼 구입하고, 판매는 구매 후 언제든 가능. 원재가 얻을 수 있는 최대이익을 구하도록 하자. 몇 가지 방법을 했었는데, 제한시간 초과로 통과하지 못했었다. 앞에서 하는 방법 때문에 문제가 있나 싶어서 뒤에서부터 검사하기로 했다. 우선 반복문으로 모든 일자를 역순으로 돌았다. 이때 가장 큰 값을 찾아내며 돌았고, 만약 가장 큰 값인 max_value보다 이번 일자의 값이 더 작다면 그것을 이득으로 계산하기로 했다. 이러니 시간 초과 없이 해결되었다. T = int(input()) for testcase in range(1,T+1): earn = 0 da.. 2024. 1. 29.
SWEA D2 1284. 수도 요금 경쟁 (python) 수도 요금 경쟁 https://swexpertacademy.com/ 풀이 P = A사의 리터 당 가격(원), Q = B사의 기본요금(원), R = B사의 기본제공 수도량(L), S=B사의 리터 당 가격(원), W = 종민이의 수도사용량(L) A사 이용 시 지불 가격 = 사용량 W(L) X P(원) B사 이용 시 지불 가격 = R리터 초과 시 Q + (W-R)*S B사 이용 시 지불 가격 = R리터 이하 시 Q T = int(input()) for testcase in range(1,T+1): P, Q, R, S, W = map(int, input().split()) Avalue = P * W Bvalue = 0 if W > R: Bvalue = Q + (W-R)*S else: Bvalue = Q prin.. 2024. 1. 29.