일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 프로그래머스
- 자바
- 이분탐색
- Set
- 카카오
- dfs
- Zip
- DateTime
- divmod
- java
- BFS
- lambda
- 파이썬
- programmers
- backjoon
- 다익스트라
- KAKAO BLIND RECRUITMENT
- python
- 그리디
- Combinations
- 위클리 챌린지
- 재귀함수
- 추석맞이 코딩챌린지
- 동적 계획법
- 백준
- heapq
- Re
- 수학
- 정렬
- 정규식
- Today
- Total
목록프로그래머스 (99)
상상쓰
https://programmers.co.kr/learn/courses/30/lessons/64064 코딩테스트 연습 - 불량 사용자 개발팀 내에서 이벤트 개발을 담당하고 있는 "무지"는 최근 진행된 카카오이모티콘 이벤트에 비정상적인 방법으로 당첨을 시도한 응모자들을 발견하였습니다. 이런 응모자들을 따로 모아 불량 programmers.co.kr 불량 사용자 아이디의 해당하는 사용자 아이디의 목록을 가지고 간단히 풀 수 있을 것으로 생각했는데 중복된 값 때문에 결국 데카트르 곱과 set() 을 이용하여 실제 제재 아이디 목록을 구하여 그 목록의 개수를 return 하였다. 최근 파이썬 문법을 공부하고 있는데 filter 한 번 써봤다. from itertools import product def solu..
https://programmers.co.kr/learn/courses/30/lessons/67259 코딩테스트 연습 - 경주로 건설 [[0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0],[0,0,0,0,0,1,0,0],[0,0,0,0,1,0,0,0],[0,0,0,1,0,0,0,1],[0,0,1,0,0,0,1,0],[0,1,0,0,0,1,0,0],[1,0,0,0,0,0,0,0]] 3800 [[0,0,1,0],[0,0,0,0],[0,1,0,1],[1,0,0,0]] 2100 [[0,0,0,0,0,0],[0,1,1,1,1,0],[0,0,1,0,0,0],[1,0,0,1,0,1],[ programmers.co.kr 처음에는 board[][] 의 값을 비교하여 변화시켜 최솟값을 재활용하는 방법으로 구현..
https://programmers.co.kr/learn/courses/30/lessons/67258 코딩테스트 연습 - 보석 쇼핑 ["DIA", "RUBY", "RUBY", "DIA", "DIA", "EMERALD", "SAPPHIRE", "DIA"] [3, 7] programmers.co.kr start 와 end 를 0 으로 잡고 조건을 잘 설정하여 1 씩 늘려준다. 모든 보석을 포함하는 구간을 만족했을 때 비교하여 길이가 최소가 되는 구간을 찾는다. from collections import defaultdict def solution(gems): answer = [] N = len(set(gems)) dic = defaultdict(int) dic[gems[0]] = 1 start, end = ..
https://programmers.co.kr/learn/courses/30/lessons/60061 코딩테스트 연습 - 기둥과 보 설치 5 [[1,0,0,1],[1,1,1,1],[2,1,0,1],[2,2,1,1],[5,0,0,1],[5,1,0,1],[4,2,1,1],[3,2,1,1]] [[1,0,0],[1,1,1],[2,1,0],[2,2,1],[3,2,1],[4,2,1],[5,0,0],[5,1,0]] 5 [[0,0,0,1],[2,0,0,1],[4,0,0,1],[0,1,1,1],[1,1,1,1],[2,1,1,1],[3,1,1,1],[2,0,0,0],[1,1,1,0],[2,2,0,1]] [[ programmers.co.kr 기둥과 보를 설치할 수 있는지, 삭제할 수 있는지를 문제를 보고 조건을 잘 만들어 ..
https://programmers.co.kr/learn/courses/30/lessons/42892 코딩테스트 연습 - 길 찾기 게임 [[5,3],[11,5],[13,3],[3,5],[6,1],[1,3],[8,6],[7,2],[2,2]] [[7,4,6,9,1,8,5,2,3],[9,6,5,8,1,4,3,2,7]] programmers.co.kr dfs 알고리즘을 이용하여 전위 순회와 후위 순회를 구하려고 하였다. dfs 알고리즘을 사용할 수 있도록 부모와 자식 관계를 나타내는 tree 라는 함수를 사용해 dic 을 구성하였다. 1. nodeinfo 에 각 번호를 넣고 y 에 대하여 내림차순, 다음으로 x 에 대하여 오름차순으로 정렬하였다. 2. tree 라는 함수는 7 이 root 라면 7 의 y 값보다..
https://programmers.co.kr/learn/courses/30/lessons/42746?language=python3 코딩테스트 연습 - 가장 큰 수 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 programmers.co.kr java 로 풀었을 때 comparator 를 이용해 풀었었는데 파이썬에도 같은 방법으로 풀었다. from functools import cmp_to_key def comparator(x, y): return int(str(y) + str(x)) - int(str(x)..
https://programmers.co.kr/learn/courses/30/lessons/60059 코딩테스트 연습 - 자물쇠와 열쇠 [[0, 0, 0], [1, 0, 0], [0, 1, 1]] [[1, 1, 1], [1, 1, 0], [1, 0, 1]] true programmers.co.kr 뭔가 복잡하여 단순하게 계산하기 위해서 lock 을 2 * (m - 1) + n 길이의 배열로 만들어 key 와 비교를 했다. 자물쇠의 홈 부분의 개수를 N 으로 하고 키의 돌기 부분이 자물쇠의 홈 부분을 만나는 횟수를 C 로 해서 비교해서 같으면 True 를 반환하고 모든 동작을 break 한다. 자물쇠와 키의 돌기 부분이 만나는 경우는 False 인 경우로 break 후 다른 경우로 넘어간다. def sol..
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 에 값을 넣어준다. ..