programing/Algorithm
-
[이것이 코딩테스트다] 미로 탈출programing/Algorithm 2021. 8. 13. 22:53
미로 탈출 난이도 1.5 이것이 코딩테스트다 with python python3 from collections import deque def solution(_map): visited = [] queue = deque([(0, 0)]) count = 0 # 해당 문제에서 시작점은 하나로 고정이므로, for문을 사용할 필요가 없습니다. return bfs(_map, visited, queue, count) def add_coord(c1): def _add_coord(c2): return c1[0] + c2[0], c1[1] + c2[1] return _add_coord def is_in_boundary(_map): def _is_in_boundary(c): is_in_row = 0
-
[이것이 코딩테스트다] 음료수 얼려 먹기programing/Algorithm 2021. 8. 13. 22:05
음료수 얼려 먹기 난이도 1.5 이것이 코딩테스트다! with python python3 def solution(_map): visited = [] num_of_ice = 0 # 각 노드를 순회하면서 DFS를 실행합니다. for i in range(len(_map)): for j in range(len(_map[i])): coord = (i, j) if dfs(_map, coord, visited): num_of_ice += 1 return num_of_ice # 단순히 좌표를 계산하는 함수입니다. def add_coord(c1): def _add_coord(c2): return c1[0] + c2[0], c1[1] + c2[1] return _add_coord # 해당 좌표가 범위 내인지 확인하는 함수..
-
[이것이 코딩 테스트다] 게임 개발programing/Algorithm 2021. 8. 11. 22:04
게임 개발 이것이 코딩 테스트다 with python 난이도 2 python3 def addCoord(coord1, coord2): [x, y] = coord1 [a, b] = coord2 return [x + a, y + b] def search(coordinate, d, visited, map): boundary = len(map) destination = addCoord(coordinate, d) [destX, destY] = destination isInBoundaryX = 0
-
큰 수의 법칙programing/Algorithm 2021. 7. 23. 17:29
큰 수의 법칙 python 3 def solution(arr, maxLength, dup): _sorted = sorted(arr, reverse=True) [maxNum, nextMaxNum] = _sorted[0:2] # _count = 0 # result = [] # # result = [nextMaxNum if i % (dup + 1) == 0 else maxNum for i in range(1, maxLength + 1)] # return sum(result) rowNum = maxLength // (dup + 1) restLength = maxLength % (dup + 1) rowSum = maxNum * dup + nextMaxNum totalSum = rowSum * rowNum + ma..
-
[Programmers] 문자열 압축programing/Algorithm 2021. 7. 4. 17:45
문자열 압축 level 2 2020 KAKAO BLIND RECRUITMENT python 3 # 문자열을 step 단위로 토크나이징 한 뒤, 각 토큰 별 반복횟수를 이차원 배열로 만드는 함수 def compress(s, step): countStack = [] tokenList = [s[i: i + step] for i in range(0, len(s), step)] for token in tokenList: # 첫번째 토큰은 스택에 바로 넣어줍니다. if len(countStack) == 0: countStack.append([token, 1]) # 두번째 토큰 부터는 이전 토큰과 동일한지 검사합니다. else: lastIndex = len(countStack) - 1 if countStack[las..
-
[Programmers] 로또의 최고 순위와 최저 순위programing/Algorithm 2021. 5. 23. 18:22
로또의 최고 순위와 최저 순위 level 1 2021 Dev-Matching: 웹 백엔드 개발자(상반기) python 3 def getOrder(n): if n < 2: return 6 else: return 6 - n + 1 def solution(lottos, win_nums): zeroNum = lottos.count(0) lottoSet = set(lottos) winSet = set(win_nums) intersection = lottoSet.intersection(winSet) _min = len(intersection) restWinSet = winSet.difference(intersection) _max = min([zeroNum, len(restWinSet)]) + _min return..
-
[programmers] 약수의 개수와 덧셈programing/Algorithm 2021. 5. 15. 17:40
약수의 개수와 덧셈 월간 코드 챌린지 시즌 2 level 1 python 3 우선 특정 수의 약수 개수를 판단하는 기본적인 방법은 다음과 같다. def dividorNumIsEven(n): dividorList = [] for i in range(1, n + 1): if (n % i) == 0: dividorList.append(i) return True if len(dividorList) % 2 == 0 else False 그런데 이런 방식을 left 부터 right 까지 모두