일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- dfs
- 프로그래머스
- 정규식
- lambda
- Combinations
- backjoon
- 백준
- programmers
- 추석맞이 코딩챌린지
- 카카오
- 수학
- BFS
- python
- 위클리 챌린지
- Zip
- java
- 재귀함수
- 동적 계획법
- heapq
- 이분탐색
- 정렬
- DateTime
- divmod
- Re
- 다익스트라
- KAKAO BLIND RECRUITMENT
- 파이썬
- 그리디
- 자바
- Set
- Today
- Total
목록파이썬 (161)
상상쓰
https://www.acmicpc.net/problem/13305 13305번: 주유소 표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 도시의 개수를 나타내는 정수 N(2 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 인접한 두 도시를 연결하는 도로의 길이가 제일 왼쪽 도로부터 N-1 www.acmicpc.net 정답 비율이 약 36% 인데 많이 쉬웠다. 방향은 정해져 있으니 도시를 지나갈 때 현재까지의 가장 낮은 가격으로 계산해주면 된다. import sys answer = 0 N = int(sys.stdin.readline()) distance = sys.stdin.readline().split() price = sys.stdin.readline().split() m = 100000000..
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://www.acmicpc.net/problem/5585 5585번: 거스름돈 타로는 자주 JOI잡화점에서 물건을 산다. JOI잡화점에는 잔돈으로 500엔, 100엔, 50엔, 10엔, 5엔, 1엔이 충분히 있고, 언제나 거스름돈 개수가 가장 적게 잔돈을 준다. 타로가 JOI잡화점에서 물건을 사 www.acmicpc.net 백준에서는 당분간 그리드 알고리즘 위주로 풀어볼 생각이다. 가장 큰 화폐부터 거스름돈을 계산해서 주면 된다. M = 1000 - int(input()) change = [500, 100, 50, 10, 5, 1] answer = 0 for i in change: answer = answer + (M // i) M = M % i if M == 0: print(answer) # ..
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..