전체 글

Android, Backend-Developer
이번에 소프트웨어 마에스트로 15기를 지원했다 SW마에스트로는 "창의도전형 프로젝트 기획 개발" 교육 과정을 운영하여, 프로젝트 성과가 우수한 연수생을 선발하여 글로벌 SW역량 강화 프로그램을 지원한다. 프로그램 과정 중에서 IT기기 지원, 매월 장학금 지원, 프로젝트 개발비 지원.. 등 연수생에게 전폭적인 지원이 나온다. 그렇기 때문에 개발자로 취업을 준비하는 사람들, 컴퓨터 공학과에 재학 중인 대학생들에게 인기가 많고 경쟁률이 되게 높은 프로그램이다. 현재 나는 컴퓨터 관련과 3학년 재학중이며 스타트업에도 관심이 있고, 많은 지원을 받으며 잘하는 사람들과 함께 프로젝트를 진행하는 경험을 해보고 싶어 지원하게 되었다. 그리고 내 코딩테스트 실력이 어느정도일지 궁금했다. 알고리즘 공부는 꾸준히 해오고 있..
문제 링크 나의 풀이 def solution(brown, yellow): li = [1,2,3] # yellow가 1,2,3일땐 모양이 결정되므로 따로 처리 if yellow in li: v = yellow h = 1 return [v+2, h+2] for h in range(2, yellow//2 + 1): if yellow % h == 0: v = yellow // h tmpB = v * 2 + h * 2 + 4 if tmpB == brown: return [v+2, h+2] # 완전탐색을 하되, 결정할 수 있는 것을 먼저 결정하면서 탐색하기 # 이 문제에서는 yellow를 기준으로 가능한 경우를 탐색하면서 그에 맞는 brown을 계산하면 가로, 세로를 찾을 수 있다. 생각 과정 이런 문제는 처음부터..
문제 링크 나의 풀이 from collections import Counter # 종류가 매핑 -> 딕셔너리 사용 def solution(clothes): answer = 1 cloth_map = {} for i in range(len(clothes)): # O(N) cloth_map[clothes[i][0]] = clothes[i][1] category_count = Counter(cloth_map.values()) # O(종류 개수) # Counter는 iterable한 객체를 받아서 각 요소의 개수를 세어서 dict로 만들어준다 for i in category_count.values(): answer = answer * (i + 1) return answer - 1 Counter를 쓰지 않고 개수를..
문제 링크 나의 풀이 # perm의 시간복잡도 : O(n!) # comb의 시간복잡도 : O(nCr) import math from itertools import permutations def solution(numbers): max = 10000000 # 에라토스테네스의 체를 이용해 소수 테이블 미리 생성 array = [True for _ in range(max + 1)] for i in range(2, int(math.sqrt(max)) + 1): if array[i] == True: j = 2 while j * i ''.join(perm)하면 '17' -> int하면 17 # permutation을 쓸 수 있는 근거는 n, r의 최대값이 7이기 때문에 O(n) * O(n!) 충분히 가능 answe..
yeong0jae
개발기록