일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- cos pro 1급
- C++
- BAEKJOON
- cos
- 개발
- k8s
- DFS와BFS
- issue
- 백준
- 파이썬
- 안드로이드스튜디오
- android
- 동적계획법과최단거리역추적
- Flutter
- 코딩테스트
- cos pro
- 코테
- 안드로이드
- 코드품앗이
- 분할정복
- django
- codingtest
- DART
- 동적계획법
- Algorithm
- Python
- vuejs
- AndroidStudio
- DFS
- 알고리즘
- Today
- Total
목록Algorithm (123)
Development Artist

문제 유형 코딩 난이도 hard Note 1. bfs문제 유형. '순회'라는 개념. dxy : 비숍이 갈 수 있는 좌표를 설정. Code # -*- coding: utf-8 -*- # UTF-8 encoding when using korean # 3차 3번 def solution(bishops): answer = 0 dxy = [[1,1],[1,-1],[-1,1],[-1,-1]] field = [[0] * 8 for i in range(8)] for bis in bishops: x = ord(bis[0])-65 y = int(bis[1])-1 field[x][y] = 1 for dx, dy in dxy: nx , ny = x, y while True: nx += dx ny += dy if nx >=8 o..

문제 유형 빈칸 난이도 easy Note 1. 팰린드롬 수 : 앞뒤를 뒤집어도 똑같은 문자열 2. start_idx를 정하는 2중 for문 로직 기억. Code # -*- coding: utf-8 -*- # UTF-8 encoding when using korean # 3차 2번 def func_a(arr, s): return s in arr def func_b(s): length = len(s) for i in range(length // 2): if s[i] != s[length - i - 1]: return False return True def func_c(palindromes, k): palindromes = sorted(palindromes) if len(palindromes) < k: ret..

문제 유형 빈칸 난이도 easy Note 1. func_b 체크. 2개의 배열이 rotate하는지 안하는지 확인하는 함수. first 배열의 요소들은 더하고 second 요소들은 빼줘서 각 인덱스 값이 0이면 rotate 한다. Code # -*- coding: utf-8 -*- # UTF-8 encoding when using korean # 3차 1번 def func_a(arr): ret = arr + arr return ret def func_b(first, second): MAX_NUMBER = 1001 counter = [0 for _ in range(MAX_NUMBER)] for f, s in zip(first, second): counter[f] += 1 counter[s] -= 1 for ..

문제 유형 한줄 수정 난이도 easy Note 1. 연속된 0들을 0으로 만드는 알고리즘 : 지금 0이고 다음문자가 0이 아니면 0을 붙인다. Code # -*- coding: utf-8 -*- # UTF-8 encoding when using korean # 2차 10번 function def solution(s): s += '#' answer = "" for i in range(len(s)): if s[i] == '0' and s[i + 1] != '0': answer += '0' elif s[i] == '1': answer += '1' return answer s = "101100011100" ret = solution(s) print("solution 함수의 반환 값은", ret, "입니다.") ..

문제 유형 한줄 수정 난이도 normal Note 1. 연속된 3자리수 체크 하는 알고리즘. 연속된 x, y, z 문자 or 숫자가 있다면 y-x, z-y의 차이가 같아야 한다. Code # -*- coding: utf-8 -*- # UTF-8 encoding when using korean # 2차 9번 def solution(password): length = len(password) for i in range(length - 2): first_check = ord(password[i + 1]) - ord(password[i]) second_check = ord(password[i + 2]) - ord(password[i + 1]) if first_check == second_check and (fi..

문제 유형 한줄 수정 난이도 easy Note 1. 배열 양끝에서 하나씩 번갈아가면서 원소 선택하는 알고리즘. Code # -*- coding: utf-8 -*- # UTF-8 encoding when using korean # 2차 8번 def solution(arr): left, right = 0, len(arr) - 1 idx = 0 answer = [0 for _ in range(len(arr))] while left

문제 유형 빈칸 난이도 normal Note 1. Greedy 알고리즘 Code # -*- coding: utf-8 -*- # UTF-8 encoding when using korean # 2차 7번 def solution(money): coin = [10, 50, 100, 500, 1000, 5000, 10000, 50000] counter = 0 idx = len(coin) - 1 while money: counter += money // coin[idx] money %= coin[idx] idx -= 1 return counter money = 2760 ret = solution(money) print("solution 함수의 반환 값은", ret, "입니다.") ※ 가끔 코드 중 print(~)가..

문제 유형 코딩 난이도 easy Note Nothing Code # -*- coding: utf-8 -*- # UTF-8 encoding when using korean # 2차 6번 def solution(commands): answer = [] x = 0 y = 0 list_commands = list(commands) for i in list_commands: if i == 'L': x -= 1 elif i == 'R': x += 1 elif i == 'U': y += 1 else: y -= 1 answer.append(x) answer.append(y) return answer commands = "URDDL" ret = solution(commands) print("solution 함수의 반환 ..

문제 유형 코딩 난이도 normal Note 1. 오르막길 횟수를 count하는 배열 놓기. (내리막길을 카운트할 필요는 없음) 2. 해당 배열의 max값을 찾기 Code # -*- coding: utf-8 -*- # UTF-8 encoding when using korean # 2차 5번 def solution(arr): answer = 0 idx = 0 tmp = [0 for i in range(len(arr)-1)] for i in range(len(arr)-1): if arr[i] < arr[i+1]: tmp[idx] += 1 else: idx += 1 answer = max(tmp)+1 if answer < 2: return 1 return answer arr = [3, 1, 2, 4, 5, 1..

문제 유형 코딩 난이도 (주관적인) hard Note 1. Combination(조합). 배열의 원소들 중 3개를 택하여 더하여 K배수가 되는지 확인. Code # -*- coding: utf-8 -*- # UTF-8 encoding when using korean # 2차 4번 def solution(arr, K): answer = 0 for i in range(len(arr)-2): for j in range(i+1, len(arr)-1): for k in range(j+1, len(arr)): if (arr[i]+arr[j]+arr[k])%K == 0: answer += 1 return answer arr = [1, 2, 3, 4, 5] K = 3 ret = solution(arr, K) print..