자기계발/그외 준비하는것

[Python]COS_PRO_기출 3회차[6-10]풀이

개발자 덕구🐾 2022. 10. 26. 16:13
728x90

6번 소수의  합으로  표현하기 

def solution(n):
	answer = 0
	primes = [2]
	for i in range (3, n + 1, 2) :
		is_prime = True
		for j in range(2, i) :
			if i % j == 0 :
				is_prime = False
				break
		if is_prime == True :
			primes.append(i)

	prime_len = len(primes)
	for i in range(0, prime_len - 2) :
		for j in range(i + 1, prime_len - 1) :
			for k in range(j + 1, prime_len) :
				if primes[i]+primes[j]+primes[k] == n :
					answer += 1
	return answer

 

 

 

 

7번 카프리카 수

def solution(k):
	answer = []
	for i in range(1, k + 1):
		square_num = i * i
		divisor = 1
        # '%'가 아닌 // 로 해야함 
		while (square_num // divisor)!= 0:
			front = square_num // divisor
			back = square_num % divisor
			divisor *= 10
			if back != 0 and front != 0:
				if front + back == i:
					answer.append(i)
	return answer

 

 

 

 

8번 선풍기를 몇대 사야하나요?

def solution(k, student):
	answer = 0
	for s in student:
		s -= 4*k
		if s <= 0:
			continue
		answer += (s + k - 1) // k
	return answer

 

break를 continue로 변경해야한다. 

 

 

 

9번 팝업 스토어를 열 최적의 날짜 

def solution(revenue, k) :
	answer = 0
	rsum = sum(revenue[0:k])
	answer = rsum
	for i in range(k,len(revenue)) :
		rsum = rsum - revenue[i - k] + revenue[i]
		if answer < rsum :
			answer = rsum
	return answer

 

 

10번 밥먹고 머리자르고 

class HairShop(Shop):
	def __init__(self):
		super().__init__()

	def reserve(self, customer):
		if customer.num_of_people != 1:
			return False
		for r in self.reserve_list:
			if r.time == customer.time :
				return False
		self.reserve_list.append(customer)
		return True

class Restaurant(Shop):
	def __init__(self):
		super().__init__()
		
	def reserve(self, customer):
		if customer.num_of_people < 2 or customer.num_of_people > 8 :
			return False
		count = 0
		for r in self.reserve_list:
			if r.time == customer.time:
				count += 1
		if count >= 2:
			return False
		self.reserve_list.append(customer)
		return True

 

 

 

 

 

반응형