일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- DateTime
- 백준
- java
- 다익스트라
- lambda
- Re
- 재귀함수
- python
- programmers
- dfs
- BFS
- 이분탐색
- 카카오
- 정렬
- Combinations
- KAKAO BLIND RECRUITMENT
- Set
- 수학
- 위클리 챌린지
- backjoon
- 정규식
- 파이썬
- 그리디
- heapq
- 동적 계획법
- 프로그래머스
- Zip
- divmod
- 자바
- 추석맞이 코딩챌린지
- Today
- Total
목록프로그래머스 (99)
상상쓰
https://programmers.co.kr/learn/courses/30/lessons/81301 코딩테스트 연습 - 숫자 문자열과 영단어 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자 programmers.co.kr 2021 카카오 채용연계형 인턴십 1단계 문제 def solution(s): answer = 0 number = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine'] for i in range(10): s = s.replace(number[i], str(i)) ..
https://programmers.co.kr/learn/courses/30/lessons/42884 코딩테스트 연습 - 단속카메라 [[-20,15], [-14,-5], [-18,-13], [-5,-3]] 2 programmers.co.kr 정렬을 통하여 차례대로 카메라를 반드시 설치하여야 하는 경우를 세어준다. [-20, 15] 만을 본다면 적어도 15 이하에는 카메라가 설치되어 있어야 한다. 다음 순서인 [-14, -5] 를 봤을 때는 -14 가 -20 보다 크다는 것은 sort() 로 보장되어 있다. 즉, 15 가 -14 보다 크다면 15 와 [-14, -5] 에서 나간 지점은 5 랑 비교하여 작은 값에 카메라를 설치하는 것이 이상적이다. 반대로 작다면, 카메라 1대로 두 구간을 확인하는 것이 불가..
https://programmers.co.kr/learn/courses/30/lessons/12949 코딩테스트 연습 - 행렬의 곱셈 [[2, 3, 2], [4, 2, 4], [3, 1, 4]] [[5, 4, 3], [2, 4, 1], [3, 1, 1]] [[22, 22, 11], [36, 28, 18], [29, 20, 14]] programmers.co.kr numpy 가 통하는지 확인해봤다. 된다. import numpy as np def solution(arr1, arr2): answer = np.array(arr1).dot(np.array(arr2)) return answer.tolist() print(solution([[1, 4], [3, 2], [4, 1]], [[3, 3], [3, 3]])..
https://programmers.co.kr/learn/courses/30/lessons/17685 코딩테스트 연습 - [3차] 자동완성 자동완성 포털 다음에서 검색어 자동완성 기능을 넣고 싶은 라이언은 한 번 입력된 문자열을 학습해서 다음 입력 때 활용하고 싶어 졌다. 예를 들어, go 가 한 번 입력되었다면, 다음 사용자는 g programmers.co.kr 저번에 Trie 자료구조를 유튜브를 통해서 배운 적이 있는데 문제를 보고 Trie 를 이용해야겠다고 생각이 났다. 문자열을 한 문자씩 정의하여 dictionary 에 담아서 dictionary[] 의 길이를 가지고 몇 번의 입력으로 자동완성이 되는지를 판별해주면 된다. 예를 들어, dictionary['g'] 의 길이가 2개 이상이라면 'g' ..
https://programmers.co.kr/learn/courses/30/lessons/43236 코딩테스트 연습 - 징검다리 출발지점부터 distance만큼 떨어진 곳에 도착지점이 있습니다. 그리고 그사이에는 바위들이 놓여있습니다. 바위 중 몇 개를 제거하려고 합니다. 예를 들어, 도착지점이 25만큼 떨어져 있고, 바위가 programmers.co.kr 이분탐색 문제로 mid 를 잡고 해당 mid 가 조건에 부합하는지를 판별한다. 아래의 c 는 제거한 바위의 수이다. mid 가 커서 반드시 제거해야 할 바위의 수가 n 보다 많아지면 mid 는 최솟값이 될 수 없으므로 보다 작은 값에서 답이 나온다. (end = mid - 1) 그렇지 않으면 start = mid + 1 로 설정한다. 결론적으로 구해..
https://programmers.co.kr/learn/courses/30/lessons/42862 코딩테스트 연습 - 체육복 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번 programmers.co.kr 중복된 번호에 대해서는 체육복을 빌리지도 주지도 못하기 때문에 filter 를 통해서 제거한다. 그 후에 도난당한 학생의 번호를 기준으로 조건을 충족하지 못하면 answer 에 1 씩 더하여 최종적으로 n - answer 을 반환한다. def solution(n, lost, reserve): answer = 0 lost_ = list(filter(lambda x ..
https://programmers.co.kr/learn/courses/30/lessons/42627 코딩테스트 연습 - 디스크 컨트롤러 하드디스크는 한 번에 하나의 작업만 수행할 수 있습니다. 디스크 컨트롤러를 구현하는 방법은 여러 가지가 있습니다. 가장 일반적인 방법은 요청이 들어온 순서대로 처리하는 것입니다. 예를 programmers.co.kr heapq 를 이용하여 문제에서 말하는 대로 구현하면 된다. 현재 시각 T 를 설정하여 정렬된 jobs 의 가장 작은 시점에 있는 값보다 T 가 크다면 heapq 에 넣고 그렇지 않으면, heapq 에서 job 을 꺼내어 T 와 answer 를 재설정한다. import heapq def solution(jobs): answer = 0 jobs.sort(ke..
https://programmers.co.kr/learn/courses/30/lessons/49191 코딩테스트 연습 - 순위 5 [[4, 3], [4, 2], [3, 2], [1, 2], [2, 5]] 2 programmers.co.kr 주어진 results 배열로 해당 선수보다 순위가 낮은 선수들의 집합과 높은 선수들의 집합을 구하여 순위를 결정할 수 있으면 answer 에 1 씩 더하였다. 예를 들어, 순위 관계가 A < B 라고 가정하자. 문제에서 A < B 라면 results 배열에 [B, A] 가 존재하거나, A=C0 < C1 < C2 < ... < Cn-1 < B=Cn 를 만족하는 [C1, A], [C2, C1], ... , [B, Cn-1] 이 존재한다. 아래의 소스에서 i 에 해당하는 것..
https://programmers.co.kr/learn/courses/30/lessons/42578 코딩테스트 연습 - 위장 programmers.co.kr 처음에는 combinations 를 이용하여 풀었는데 시간 초과가 났다. 다시 보니, 조합을 이용할 필요가 없었다. headgear 가 3가지 종류가 있다면 headgear 를 안 쓰는 조건까지 추가하여 4가지로 계산한다. 최소한 한 개 이상의 의상은 입으므로 최종적으로 계산된 answer 에서 아무것도 안 입는 경우인 1을 빼주면 된다. from collections import defaultdict def solution(clothes): answer = 1 dic = defaultdict(int) for i in clothes: dic[i[1..
https://programmers.co.kr/learn/courses/30/lessons/12973 코딩테스트 연습 - 짝지어 제거하기 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙 programmers.co.kr stack 의 LIFO (후입선출) 을 이용하여 차례로 해결해가면 된다. def solution(s): answer = -1 stack = [] for i in s: stack.append(i) while len(stack) >= 2: if stack[-1] == stack[-2]: stack.pop() stack.pop() else: break a..