일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Algorithm
- Vue
- DFS와BFS
- 안드로이드스튜디오
- codingtest
- 안드로이드
- 코드품앗이
- 알고리즘
- android
- cos pro 1급
- 파이썬
- C++
- 백준
- 동적계획법
- 개발
- DART
- 코테
- cos pro
- BAEKJOON
- AndroidStudio
- django
- cos
- issue
- 코딩테스트
- vuejs
- Python
- 동적계획법과최단거리역추적
- Flutter
- 분할정복
- DFS
- Today
- Total
목록Algorithm/COS (59)
Development Artist
문제 유형 빈칸 난이도 easy Note 1.func_a : stack에서 값을 꺼냄.(pop) func_b : stack1에서 pop해서 stack2에 넣는 함수. func_c : stack이 비었는지 체크하는 함수. Code # -*- coding: utf-8 -*- # UTF-8 encoding when using korean def func_a(stack): return stack.pop() def func_b(stack1, stack2): while not func_c(stack1): item = func_a(stack1) stack2.append(item) def func_c(stack): return (len(stack) == 0) def solution(stack1, stack2): if ..
문제 유형 빈칸 난이도 easy Note 1.func_a : check된 배열을 가지고 DP 방식으로 이전 값과 다르면 1 증가시켜서 ret에 저장. func_b : 이전에서 증가하는지 감소하는지 체크하여 ret 배열에 넣음. (0 또는 1이 들어있음. 0 0 1 0 1 0 0 .. 이런식) func_c : ret에서 최대값을 출력. Code # -*- coding: utf-8 -*- # UTF-8 encoding when using korean INC = 0 DEC = 1 def func_a(arr): length = len(arr) ret = [0 for _ in range(length)] ret[0] = 1 for i in range(1, length): if arr[i] != arr[i-1]: r..
문제 유형 빈칸 난이도 easy Note 1. 문제 자체는 쉬웠다. 2. 하지만, 함수 구현 문제로 나올 수 있으니, 해당 로직은 알 필요가 있다. 3. left 업데이트를 기존의 left와 num과 비교하여 num이 크면 업데이트를 하고, right 업데이트도 마찬가지로 기존 right과 num을 비교하여 num이 더 작을경우 right을 업데이트 한다. Code # -*- coding: utf-8 -*- # UTF-8 encoding when using korean def solution(K, numbers, up_down): left = 1 right = K for num, word in zip(numbers, up_down): if word == "UP": left = max(left, num) ..
문제 유형 한줄 수정(디버깅) 난이도 easy Note 1. 문제 자체는 쉬웠다. 2. 하지만, 함수 구현 문제로 나올 수 있으니, 해당 로직은 알 필요가 있다. 3. grid[i][j] + grid[j][k] (가로로 접었은 것) 와 grid[i][j] + grid[k][i] (세로로 접은 것) 중 더 큰 것과 answer를 비교해서 answer에 업데이트. Code # -*- coding: utf-8 -*- # UTF-8 encoding when using korean def solution(grid): answer = 0 for i in range(4): for j in range(4): for k in range(j + 1, 4, 2): answer = max(answer, max(grid[i][..
문제 유형 한줄 수정(디버깅) 난이도 easy Note 1. 문제 자체는 쉬웠다. 2. 하지만, 함수 구현 문제로 나올 수 있으니, 해당 로직은 알 필요가 있다. 3. coins[0][0] 부터 시작해서 오른쪽, 아래로 가면서 코인을 더해감. Code # -*- coding: utf-8 -*- # UTF-8 encoding when using korean def solution(board): coins = [[0 for c in range(4)] for r in range(4)] for i in range(4): for j in range(4): if i == 0 and j == 0: # 초기세팅 coins[i][j] = board[i][j] elif i == 0 and j != 0: # 아래로 coin..
문제 유형 한줄 수정(디버깅) 난이도 easy Note 1. 문제 자체는 쉬웠다. 2. 하지만, 함수 구현 문제로 나올 수 있으니, 해당 로직은 알 필요가 있다. 3. card : 전체, card_a : 반으로 나눠진 일부, card_b : 반으로 나눠진 나머지 -> card = card_a + card+b Code # -*- coding: utf-8 -*- # UTF-8 encoding when using korean def solution(n, mix, k): answer = 0 card = [_ for _ in range(1, n+1)] while mix != 0: mix = mix - 1 card_a, card_b = [0 for _ in range(n//2)], [0 for _ in range(..
문제 유형 코딩 난이도 normal Note 1. combination(조합) 으로 해결. 2. for문을 돌면서 min과 max를 구해서 빼고 결과를 answer에 업데이트. Code # -*- coding: utf-8 -*- # UTF-8 encoding when using korean import itertools def solution(arr, K): answer = 10001 list_a = list(itertools.combinations(arr, K)) for nums in list_a: list_nums = list(set(nums)) max_n, min_n = max(list_nums), min(list_nums) rtn = max_n - min_n if rtn < answer: answ..
문제 유형 코딩 난이도 normal Note 1. 임계값 K를 업데이트 하면서 필요한 라인 계산. 2. 띄워쓰기 때문에 is_first로 첫 라인의 첫 단어는 띄워쓰기를 빼는 것으로 계산. Code # -*- coding: utf-8 -*- # UTF-8 encoding when using korean def solution(K, words): answer = 1 rest_len = K is_first = True for word in words: if is_first: length = len(word) else: length = len(word) + 1 if 0
문제 유형 코딩 난이도 normal Note 1. bfs 문제. 백준의 토마토 문제와 유사(?같음.). 2. bfs 문제를 많이 풀어보면, 익숙하다. Code # -*- coding: utf-8 -*- # UTF-8 encoding when using korean # bfs, 백준 토마토 문제 from collections import deque dx=[-1,0,1,0] # 좌 우 dy=[0,1,0,-1] # 상 하 queue = deque() def bfs(n, garden): while queue: x,y = queue.popleft() for i in range(4): nx = x + dx[i] ny = y + dy[i] if 0
문제 유형 빈칸 난이도 easy Note 1. 파이썬의 Class, def, self. Code class Job: def __init__(self): self.salary = 0 def get_salary(self): return salary class PartTimeJob(Job): def __init__(self, work_hour, pay_per_hour): super().__init__() self.work_hour = work_hour self.pay_per_hour = pay_per_hour def get_salary(self): self.salary = self.work_hour * self.pay_per_hour if self.work_hour >= 40: self.salary += (s..