일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 백준
- 카카오
- lambda
- Re
- 그리디
- Set
- 수학
- Zip
- 다익스트라
- dfs
- DateTime
- 추석맞이 코딩챌린지
- 위클리 챌린지
- 프로그래머스
- BFS
- 이분탐색
- KAKAO BLIND RECRUITMENT
- 파이썬
- programmers
- 동적 계획법
- heapq
- 정렬
- divmod
- java
- Combinations
- backjoon
- 자바
- 정규식
- 재귀함수
- python
- Today
- Total
목록전체 글 (202)
상상쓰
https://programmers.co.kr/learn/courses/30/lessons/1844 코딩테스트 연습 - 게임 맵 최단거리 [[1,0,1,1,1],[1,0,1,0,1],[1,0,1,1,1],[1,1,1,0,1],[0,0,0,0,1]] 11 [[1,0,1,1,1],[1,0,1,0,1],[1,0,1,1,1],[1,1,1,0,0],[0,0,0,0,1]] -1 programmers.co.kr BFS, 너비 우선 탐색이므로 가장 처음 방문했을 때 계산된 maps[][] 값이 최단 거리가 된다. from collections import deque def solution(maps): answer = -1 n = len(maps) m = len(maps[0]) visit = [[0 for j in ra..
https://programmers.co.kr/learn/courses/30/lessons/42891?language=python3 코딩테스트 연습 - 무지의 먹방 라이브 programmers.co.kr 옛날에 java 로 풀었던 문제를 python 으로 풀어봤다. 1. heapq 를 이용하여 queue 에서 가장 작은 원소를 내보내면서 k 를 줄인다. 이 과정을 반복하여 queue 에서 남은 원소 중 가장 작은 것을 제거할 때 줄어든 k 보다 크다면 while 문을 종료시킨다. 2. 이때 남은 k 는 0 보다 같거나 큰 수로 현재 남은 queue 의 길이 (정확히는 len(queue) + 1) 만큼 나눈 나머지는 food_time[0] 을 기준으로 한 바퀴를 돌기 전까지의 남는 시간이다. 차례대로 fo..
https://programmers.co.kr/learn/courses/30/lessons/12978 코딩테스트 연습 - 배달 5 [[1,2,1],[2,3,3],[5,2,2],[1,4,2],[5,3,1],[5,4,2]] 3 4 6 [[1,2,1],[1,3,2],[2,3,2],[3,4,3],[3,5,2],[3,5,3],[5,6,1]] 4 4 programmers.co.kr 다익스트라 알고리즘을 이용하여 1 에서 출발하여 각 도착하는 번호에 대한 최단 시간을 구하면 된다. 1 에서 출발하여 도작하는 번호의 시간을 계속 비교하면서 더 적은 시간을 distances 에 넣어주면 된다. distances[b] 가 0 인 것은 c 가 1 이상이므로 처음 지나는 경로라는 뜻으로 b 를 queue 에 값을 넣어준다. ..
https://programmers.co.kr/learn/courses/30/lessons/49994 코딩테스트 연습 - 방문 길이 programmers.co.kr 거쳤던 길을 제거하기 위해서 set 에 담는다. 가는 길과 돌아오는 길을 set 에 넣어줘야 하기 때문에 return 값은 set 의 길이를 2 로 나눠주면 된다. def solution(dirs): answer = 0 route = set() x, y, x_, y_= 0, 0, 0, 0 for i in dirs: if i == 'U': x_, y_ = x, y + 1 if i == 'D': x_, y_ = x, y - 1 if i == 'R': x_, y_ = x + 1, y if i == 'L': x_, y_ = x - 1, y if ab..
https://programmers.co.kr/learn/courses/30/lessons/72414 코딩테스트 연습 - 광고 삽입 시간을 나타내는 HH, H1, H2의 범위는 00~99, 분을 나타내는 MM, M1, M2의 범위는 00~59, 초를 나타내는 SS, S1, S2의 범위는 00~59까지 사용됩니다. 잘못된 시각은 입력으로 주어지지 않습니다. (예: 04:60:24, 11 programmers.co.kr 누적합 또는 부분합을 이용하여 미리 계산된 배열을 가지고 시청자 누적 재생 시간이 가장 긴 구간을 찾는다. 경계선 이외에도 답이 될 수 있기 때문에 초마다 비교를 해주어야 했다. '99:59:59' 를 초로 바꾸면 359999초 이다. def solution(play_time, adv_tim..
https://programmers.co.kr/learn/courses/30/lessons/43238 코딩테스트 연습 - 입국심사 n명이 입국심사를 위해 줄을 서서 기다리고 있습니다. 각 입국심사대에 있는 심사관마다 심사하는데 걸리는 시간은 다릅니다. 처음에 모든 심사대는 비어있습니다. 한 심사대에서는 동시에 한 programmers.co.kr 문제 분류가 이분 탐색으로 되어있어서 그것에 맞게 풀었다. 일어날 수 있는 최솟값인 times[0] 과 최댓값인 times[0] * n 을 가지고 이분 탐색하여 적절한 값을 찾았다. mid 를 정해서 일어날 수 있는 시간이면 -1, 일어날 수 없는 시간이면 +1 을 해서 일어날 수 있는 동시에 가장 최소인 값을 구할 수 있다. def solution(n, time..
https://programmers.co.kr/learn/courses/30/lessons/76503 코딩테스트 연습 - 모두 0으로 만들기 각 점에 가중치가 부여된 트리가 주어집니다. 당신은 다음 연산을 통하여, 이 트리의 모든 점들의 가중치를 0으로 만들고자 합니다. 임의의 연결된 두 점을 골라서 한쪽은 1 증가시키고, 다른 한 programmers.co.kr 문제를 이해하는 것부터 어려웠다. 1. sum(a) 가 0 이 아니라면 모든 가중치를 0 으로 만들 수 없으므로 -1 을 반환하면 된다. 반대로 0 이면 모든 점에서 루트 노드로의 이동이 가능하므로 0 을 만들 수 있다. 2. 트리구조에서 임의의 점이 루트 노드가 될 수 있으며 리프 노드부터 루트 노드로의 한 방향으로 모든 가중치를 0 으로 만..
https://programmers.co.kr/learn/courses/30/lessons/77884 코딩테스트 연습 - 약수의 개수와 덧셈 두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주 programmers.co.kr 하루에 한 문제 이상 풀기로 했는데 오늘 일이 많았다. 시간이 없어서 쉬운 문제를 풀었다. 약수의 개수가 홀수인 경우는 완전제곱수일 때뿐이다. def solution(left, right): answer = 0 for i in range(left, right+1): if i == int(i ** 0.5) ** ..
https://programmers.co.kr/learn/courses/30/lessons/77885 코딩테스트 연습 - 2개 이하로 다른 비트 programmers.co.kr 쉽다. 짝수일 때 이진수는 0 으로 끝나기 때문에 + 1 을 해주면 된다. 홀수일 때는 2가지 경우의 수를 두어 잘 풀면 된다. 파이썬에 내장된 함수를 통하여 쉽게 진수 변환을 할 수 있다. def solution(numbers): answer = [] for i in numbers: if i % 2 == 0: answer.append(i + 1) else: b = bin(i)[2:] b = list(b) for j in range(len(b)-1, -1, -1): if b[j] == '0': b[j] = '1' b[j+1] = ..