일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- DFS와BFS
- 분할정복
- AndroidStudio
- 동적계획법
- 코드품앗이
- android
- 코딩테스트
- cos pro
- Algorithm
- 개발
- DART
- 동적계획법과최단거리역추적
- C++
- cos pro 1급
- BAEKJOON
- 안드로이드스튜디오
- codingtest
- DFS
- 백준
- cos
- django
- Python
- 파이썬
- issue
- 알고리즘
- 코테
- vuejs
- Vue
- 안드로이드
- Flutter
- Today
- Total
목록codingtest (62)
Development Artist
문제 유형 코딩 난이도 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..
문제 유형 코딩 난이도 hard Note 1. DP 문제. 2*N 타일링 문제. = number) else dp[i-1]+1 if dp[i+1] != -1: min_num = min(min_num, dp[i+1]+1) if dp[i] != -1: min_num = min(min_num, dp[i]) dp[i] = min_num dp[i*2] = min_num+1 print(dp) return dp[target] number1 = 5 target1 = 9 ret1 = solution(number1, target1) print("solution 함수의 반환 값은", ret1, "입니다.") number2 = 3 target2 = 11 ret2 = solution(number2, target2) print("..
문제 유형 빈칸 난이도 easy Note 1. func_a : 최대 공약수 구하는 함수. 2. func_b : func_c를 돌리면서 count 하는 함수. 3. func_c : 약수 구하는 함수. Code # -*- coding: utf-8 -*- # UTF-8 encoding when using korean def func_a(a, b): mod = a % b while mod > 0: a = b b = mod mod = a % b return b def func_b(n): answer = 0 for i in range(1, n+1): if func_c(n, i): answer += 1 return answer def func_c(p, q): if p % q == 0: return True else:..
문제 유형 빈칸 난이도 normal Note 1. 크루스칼 알고리즘 문제. 크루스칼 알고리즘에 대해 공부하면 매우 쉬움. find, merge 함수 이름보고 크루스칼인가? 하고 유추했다. Code # -*- coding: utf-8 -*- # UTF-8 encoding when using korean def find(parent, u): if u == parent[u]: return u parent[u] = find(parent, parent[u]) # recursive, 루트노드 찾기 return parent[u] def merge(parent, u, v): u = find(parent, u) v = find(parent, v) if u == v: return True parent[u] = v # pa..
문제 유형 코딩 난이도 normal Note 1. convert 함수 매우 중요. 완벽한 숙지 필요. num : 숫자, base : 진법 2. string.digits+string.ascii_lowercase = 0123456789abcdefghijklmnopqrstuvwxyz 3. 그리고 파이썬은 int('str',2) 이면 str을 2진법으로 변환, int('str',3)이면 3진법으로 변환 할 수 있다. 다만, 최대한계(?)가 있는 것으로 보인다. int('100',2)는 되고 int('160',2)는 안되고...(코테 하다가 당황.) Code # -*- coding: utf-8 -*- # UTF-8 encoding when using korean import string tmp = string.d..
문제 유형 코딩 난이도 hard Note 1. '가능 강력한 아군이 이길 수 있는 적군의 수가 최대로 이길 수 있는 적군의 수'라는 것을 아는 것이 매우 중요. Code # -*- coding: utf-8 -*- # UTF-8 encoding when using korean def solution(enemies, armies): answer = 0 enemies.sort(reverse=True) armies.sort(reverse=True) for i in armies: n = 0 for j in enemies: if i >= j: n += 1 answer = max(n, answer) return answer enemies1 = [1, 4, 3] armies1 = [1, 3] ret1 = solutio..
문제 유형 한줄 수정(디버깅) 난이도 easy Note 1. 문제 자체는 쉬웠다. 2. 하지만, 함수 구현 문제로 나올 수 있으니, 해당 로직은 알 필요가 있다. 3. while문 : 숫자를 자릿 수를 쪼개가면서 10으로 나눈 나머지 (0~9)를 number_count의 인덱스에 1씩 더해감. 흡사 collections 모듈의 Counter. 숫자라서 인덱스로 가능. 문자라면, Counter 적극 활용. 4. for문 : 출력. Code # -*- coding: utf-8 -*- # UTF-8 encoding when using korean def solution(number): answer = '' number_count = [0 for _ in range(10)] while number > 0: nu..
문제 유형 한줄 수정(디버깅) 난이도 easy Note 1. 문제 자체는 쉬웠다. 2. 하지만, 함수 구현 문제로 나올 수 있으니, 로직을 알 필요가 있다. 3. 일정 구간까지 오르고, 그 이후부터 내려오는. 4. sort()로 오름차순 정렬. 하면 오르는 구간은 끝. 5. 내려가는 구간은, mid 를 구한다. 6. mid 시작을 left, 전체 수열의 끝을 right으로 두고 바꿔주기. (while문) Code # -*- coding: utf-8 -*- # UTF-8 encoding when using korean def solution(numbers): answer = [] numbers.sort() mid = (len(numbers) - 1) // 2 numbers[mid], numbers[len(..