전체 글 457

[Python/프로그래머스]점 찍기_구현

https://school.programmers.co.kr/learn/courses/30/lessons/140107 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 참고블로그를 보면 알수있지만 몇자 적어보자면 피타고라스 법칙을 이용해서 풀수있다. ( d^2 = x^2 + y^2 ) 에서 x를 이항하면 ( y^2 = d^2 - x^2 ) x를 k 간격으로 돌리면서 모든 x를 다 해보면서 y의 최대값을 구한다. y의 최댓값에서 k를 나누어 개수를 구한다. 이를 다 더해서 answer을 구해 return 한다. 1 . k의 배수만 가능하므로 for문을 k간격으로..

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

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 a..

[Python]COS_PRO_기출 3회차[1-5]풀이

1번 배열을 회전시켜보세요 def solution(arrA, arrB): if len(arrA) != len(arrB): return False if func_b(arrA,arrB): arrA_temp = func_a(arrA) if func_c(arrA_temp, arrB): return True return False 2번 팰린드롬 문제 def solution(s, k): palindromes = [] length = len(s) for start_idx in range(length): for cnt in range(1, length - start_idx + 1): sub_s = s[start_idx : start_idx + cnt] if func_b(sub_s) == True: if func_a(p..

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

6번 로봇을 움직여주세요 뇌 안쓰고 간단하게 만든 def solution(commands): answer = [0,0] for c in list(commands) : if c == 'L' : answer[0]-=1 elif c== 'R' : answer[0]+=1 elif c== 'U' : answer[1]+=1 else : answer[1]-=1 return answer 글자와 방향을 zip으로 묶고 dict를 이용해서 딕셔너리로 만든다. 딕셔너리의 key를 이용해서 dx,dy를 구하고 rx,ry에 연산한다. def solution(commands): answer = [0,0] move = dict(zip('LRUD',[[-1,0],[1,0],[0,1],[0,-1]])) rx,ry = 0,0 for c..

[Python]COS_PRO_기출2회차[1-5]풀이

1번 도서 대여점 운영 class Book(metaclass=ABCMeta): @abstractmethod def get_rental_price(self, day): pass class ComicBook(Book): def get_rental_price(self,day): cost = 500 day -= 2 if day > 0: cost += 200*day return cost class Novel(Book): def get_rental_price(self,day): cost = 1000 day -= 3 if day > 0: cost += 300*day return cost 2번 지하철 기다리기 def solution(subway_times, current_time): current_minute = fu..

[Python/BOJ] 백준2629 양팔저울_DP

https://www.acmicpc.net/problem/2629 2629번: 양팔저울 첫째 줄에는 추의 개수가 자연수로 주어진다. 추의 개수는 30 이하이다. 둘째 줄에는 추의 무게들이 자연수로 가벼운 것부터 차례로 주어진다. 같은 무게의 추가 여러 개 있을 수도 있다. 추의 무 www.acmicpc.net 코드는 맞는 것같은데 시간초과가 난다....😥 시간초과 코드 : def dfs(L,val) : if L == n : candi.add(abs(val)) else : dfs(L+1,val+goosle[L]) dfs(L+1,val-goosle[L]) dfs(L+1,val) if __name__=="__main__" : n = int(input()) goosle = list(map(int,input()...

[Python]COS_PRO_기출 1회차 [1-5]풀이

1번 . 음식 전문점 상속을 받을 때 Class PizzaStore(DeliveryStore) : 이런식으로 인터페이스 이름( DeliveryStore)을 매개변수로 준다. 클래스 내부의 메서드의 선언부는 해당 인터페이스의 추상 메서드와 동일한 선언부로 선언해준다!! def set_order_list(self, order_list): for order in order_list: self.order_list.append(order) def get_total_price(self): total_price = 0 for order in self.order_list: for menu in self.menu_list: if order == menu.name: total_price += menu.price retur..

[Python/프로그래머스]파일명 정렬_구현

https://school.programmers.co.kr/learn/courses/30/lessons/17686 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 사실 알고 코드를 보면 간단하고 쉬운데 왜 딱 보면 너무 어려워보일까...🥴 정답코드 : def solution(files): answer = [] for f in files: head, number, tail = '', '', '' number_check = False for i in range(len(f)): # 문자열 자르기 if f[i].isdigit(): # 처음 나오는 숫자부터는 NUM..