일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 수학
- 추석맞이 코딩챌린지
- programmers
- Zip
- 프로그래머스
- 정규식
- Re
- 동적 계획법
- 카카오
- 그리디
- 정렬
- 자바
- java
- 백준
- heapq
- python
- 이분탐색
- 위클리 챌린지
- Combinations
- KAKAO BLIND RECRUITMENT
- 다익스트라
- DateTime
- 파이썬
- Set
- dfs
- backjoon
- 재귀함수
- lambda
- divmod
- BFS
- Today
- Total
목록Coding Test (191)
상상쓰
https://www.acmicpc.net/problem/2156 2156번: 포도주 시식 효주는 포도주 시식회에 갔다. 그 곳에 갔더니, 테이블 위에 다양한 포도주가 들어있는 포도주 잔이 일렬로 놓여 있었다. 효주는 포도주 시식을 하려고 하는데, 여기에는 다음과 같은 두 가지 규 www.acmicpc.net 동적 계획알고리즘으로 조건에서 연속적으로 놓여있는 3잔을 모두 마실 수 없으므로 2잔을 연속으로 마시는 경우는 wine[i][0] 에 담았고 그렇지 않은 경우 중 최댓값을 M 으로 두어 wine[i][1] (= wine[i][1] + M) 에 담았다. 최종적으로 wine 에 들어있는 값 중 최댓값을 반환한다. import sys N = int(sys.stdin.readline()) wine = []..
https://www.acmicpc.net/problem/14659 14659번: 한조서열정리하고옴ㅋㅋ 첫째 줄에 봉우리의 수 겸 활잡이의 수 N이 주어진다. (1 ≤ N ≤ 30,000) 둘째 줄에 N개 봉우리의 높이가 왼쪽 봉우리부터 순서대로 주어진다. (1 ≤ 높이 ≤ 100,000) 각각 봉우리의 높이는 중복 없이 www.acmicpc.net 차례대로 진행하면서 기준점으로부터 연속적으로 오는 작은 값들의 개수를 확인하면서 최종적으로 가장 큰 개수를 반환하면 된다. import sys N = int(sys.stdin.readline()) H = list(map(int, sys.stdin.readline().split())) answer = 0 b = 0 for i in range(1, N): if ..
https://www.acmicpc.net/problem/13904 13904번: 과제 예제에서 다섯 번째, 네 번째, 두 번째, 첫 번째, 일곱 번째 과제 순으로 수행하고, 세 번째, 여섯 번째 과제를 포기하면 185점을 얻을 수 있다. www.acmicpc.net 아래와 같이 점수를 내림차순으로 날짜가 중복된다면 중복이 생기지 않을 때까지 d 를 1 씩 감소한다. d 가 0 이라는 것은 과제를 포기해야 하는 상황이다. import sys from collections import defaultdict N = int(sys.stdin.readline()) answer = 0 dic = defaultdict(int) subject = [] for i in range(N): subject.append(li..
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/42586 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr 문제에서 하라는 대로 했다. import math def solution(progresses, speeds): answer = [] jobs = [] N = len(progresses) M = math.ceil((100 - progresses[0]) / speeds[0]) e = 0 for i in range(1, N): m = math.ceil((100..
https://www.acmicpc.net/problem/2847 2847번: 게임을 만든 동준이 학교에서 그래픽스 수업을 들은 동준이는 수업시간에 들은 내용을 바탕으로 스마트폰 게임을 만들었다. 게임에는 총 N개의 레벨이 있고, 각 레벨을 클리어할 때 마다 점수가 주어진다. 플레이어 www.acmicpc.net scores 배열을 역순으로 점수를 비교해가며 구해주면 된다. import sys N = int(sys.stdin.readline()) scores = [] answer = 0 M = 20001 for i in range(N): scores.append(int(sys.stdin.readline())) for i in scores[::-1]: if M
https://www.acmicpc.net/problem/11000 11000번: 강의실 배정 첫 번째 줄에 N이 주어진다. (1 ≤ N ≤ 200,000) 이후 N개의 줄에 Si, Ti가 주어진다. (1 ≤ Si < Ti ≤ 109) www.acmicpc.net lecture 를 아래와 같이 정렬한다. heapq 를 이용하여 강의(B)가 끝나는 시간을 queue 에 담는다. 만약 강의(B)의 시작 시각이 queue 에 있는 강의(A) 중 가장 빨리 마치는 시간과 비교하여 크면 A 를 queue 에서 빼고 B 를 담는다. 이 과정을 반복하여 얻은 queue 의 길이가 최소의 강의실 이용 횟수이다. import sys, heapq N = int(sys.stdin.readline()) lecture = []..
https://www.acmicpc.net/problem/11508 11508번: 2+1 세일 KSG 편의점에서는 과일우유, 드링킹요구르트 등의 유제품을 '2+1 세일'하는 행사를 하고 있습니다. KSG 편의점에서 유제품 3개를 한 번에 산다면 그중에서 가장 싼 것은 무료로 지불하고 나머지 두 www.acmicpc.net 정렬을 이용하자. import sys N = int(sys.stdin.readline()) milk = [] answer = 0 for i in range(N): milk.append(int(sys.stdin.readline())) milk.sort(reverse=True) for i in range(N): if (i + 1) % 3 != 0: answer += milk[i] print..
https://www.acmicpc.net/problem/18238 18238번: ZOAC 2 2019년 12월, 두 번째로 개최된 ZOAC의 오프닝을 맡은 성우는 누구보다 화려하게 ZOAC를 알리려 한다. 작년 ZOAC의 방식은 너무 식상하다고 생각한 성우는 문자열을 보여주는 새로운 규칙을 고안해 www.acmicpc.net string.ascii_uppercase = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' import sys, string S = sys.stdin.readline().strip() dic = {} alphabet = string.ascii_uppercase start = 'A' answer = 0 for i in range(26): dic[alphabet[i]] = i f..