일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- programmers
- 리액트
- sw expert academy
- Python
- redux-saga
- axios
- 테코테코
- react-redux
- Get
- 자바
- JavaScript
- redux
- maeil-mail
- 프로그래머스
- json-server
- react
- java
- 항해플러스
- createSlice
- Algorithm
- SW
- 코딩테스트합격자되기
- 알고리즘
- 매일메일
- 이코테
- useDispatch
- 항해99
- react-router
- redux-toolkit
- C++
- Today
- Total
목록프로그래머스/level 2 (47)
Binary Journey
출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges answer = 0 # 답 N = 0 # 던전 개수 visited = [] # 방문처리 def dfs(k, cnt, dungeons): global answer if cnt > answer: # 최대 방문 던전 수 경신 answer = cnt for j in range(N): # 최소 피로도 조건 충족, 방문하지 않은 던전 if k >= dungeons[j][0] and not visited[j]: visited[j] = 1 dfs(k - dungeons[j][1], cnt + 1, dungeons) # 다른 곳부터 시작했을 때 모든 경우의 수를 따짐 visited[j] = 0..
출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges def solution(number, k): answer = [] for num in number: if not answer: answer.append(num) continue if k > 0: while answer[-1] < num: answer.pop() k -= 1 if not answer or k 0 else answer return ''.join(answer) * 스택을 활용 * k 횟수가 0보다 크고 answer의 마지막보다 큰 수가 나타났을 때 pop 참고: https://velog.io/@soo5717/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E..
출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges from itertools import permutations def solution(numbers): answer = [] nums = [n for n in numbers] per = [] for i in range(1, len(numbers)+1): per += list(permutations(nums, i)) new_nums = [int(("").join(p)) for p in per] for n in set(new_nums): if n < 2: continue check = True for i in range(2, int(n**0.5) + 1): if n % i == 0..
출처: https://school.programmers.co.kr/learn/courses/30/lessons/42842 def solution(brown, yellow): answer = [] 넓이 = brown + yellow for 세로 in range(1, 넓이 + 1): if 넓이 % 세로 == 0: 가로 = 넓이 // 세로 if 가로 >= 세로 and brown == 2 * 가로 + 2 * 세로 - 4: return [가로, 세로] return answer
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges def solution(citations): citations.sort() for i, citation in enumerate(citations): if citation >= len(citations) - i: return len(citations) - i return 0
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges 테스트 케이스 한 곳에서 계속 시간초과 에러 남 def solution(bridge_length, weight, truck_weights): answer = 0 truck_weights.reverse() bridge = [0 for i in range(bridge_length)] while bridge: answer += 1 bridge.pop(0) if truck_weights: sum_weights = sum(bridge) if sum_weights + truck_weights[-1] > weight: bridge.append(0) else: bridge.append(truck_weig..
레벨에 비해 쉬운 문제지만 혼자서 문제의도를 지켜서 큐 만들어 풀었다는 거에 매우 만족 예전에 풀어놨던 문제라 점수는 알 수 없지만 그래도 아주 만족 from collections import deque def solution(progresses, speeds): wait_for_complete = deque() for progress, speed in zip(progresses, speeds): div, mod = divmod((100 - progress), speed) if mod > 0 : wait_for_complete.append(div + 1) else: wait_for_complete.append(div) 기준 = [0, wait_for_complete.popleft()] answer = [..
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges 머리로는 뭔가 할 수 있을 듯 말듯한데 결국 구글의 도움을 받아야 했음 def solution(rows, columns, queries): answer = [] box = [] for i in range(rows): row = [] for j in range(columns): row.append(columns * i + j + 1) box.append(row) for querie in queries: 행1, 열1, 행2, 열2 = querie 행1 -= 1; 열1 -= 1; 행2 -= 1; 열2 -= 1 tmp = box[행1][열1] small = tmp # left for i in ra..
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges 어려워서 구글링하여 참고하였고 제출은 안 함..! from collections import deque LENGTH = 5 def bfs(p): start = [] # 시작점이 되는 P 좌표 구하기 for i in range(LENGTH): for j in range(LENGTH): # 응시자가 앉아있는 자리 P가 시작점 if p[i][j] == 'P': start.append([i, j]) for s in start: queue = deque([s]) # 큐에 초기값 visited = [[0]*LENGTH for i in range(LENGTH)] # 방문 처리 리스트 distance =..