일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- heapq
- Zip
- 추석맞이 코딩챌린지
- 카카오
- BFS
- java
- DateTime
- 자바
- programmers
- 수학
- backjoon
- 그리디
- Re
- 백준
- 다익스트라
- 프로그래머스
- divmod
- 정규식
- 정렬
- 재귀함수
- 이분탐색
- 파이썬
- Set
- Combinations
- 위클리 챌린지
- lambda
- 동적 계획법
- KAKAO BLIND RECRUITMENT
- python
- dfs
- Today
- Total
목록프로그래머스 (99)
상상쓰
https://programmers.co.kr/learn/courses/30/lessons/42894 코딩테스트 연습 - 블록 게임 [[0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,4,0,0,0],[0,0,0,0,0,4,4,0,0,0],[0,0,0,0,3,0,4,0,0,0],[0,0,0,2,3,0,0,0,5,5],[1,2,2,2,3,3,0,0,0,5],[1,1,1,0,0,0,0,0,0,5]] 2 programmers.co.kr 열심히 풀었다. 문제에서 제거가 가능한 모양은 5가지이다. 1) 1 0 0 1 1 1 2) 0 1 0 1 1 1 3) 0 0 1 1 1 1 4) 1..
https://programmers.co.kr/learn/courses/30/lessons/72416 코딩테스트 연습 - 매출 하락 최소화 CEO를 포함하여 모든 직원은 팀장 또는 팀원이라는 직위를 가지고 있으며 그림에서는 팀장과 팀원의 관계를 화살표로 표시하고 있습니다. 화살표가 시작되는 쪽의 직원은 팀장, 화살표를 받는 programmers.co.kr DFS 와 동적 계획법을 이용하여 풀 수 있을 거라고는 생각했는데 dp 배열을 구현하기가 어려워서 다른 블로그를 참고하여 풀어나갔다. dp[i][0] : i 가 참석하지 않았을 때의 최솟값, dp[i][1] : i 가 참석했을 때 최솟값으로 정의하고, 기본값으로 dp[i][1] = sales[i-1], dp[i][0] = 0 으로 시작한다. 리프 노드부..
https://programmers.co.kr/learn/courses/30/lessons/83201 코딩테스트 연습 - 2주차 [[100,90,98,88,65],[50,45,99,85,77],[47,88,95,80,67],[61,57,100,80,65],[24,90,94,75,65]] "FBABD" [[70,49,90],[68,50,38],[73,31,100]] "CFD" programmers.co.kr 위클리 챌린지 2주차 문제로 열을 기준으로 탐색한다. 대각 원소를 기준으로 대각 원소보다 큰 값이 N - 1 또는 작은 값이 N - 1 이면 대각 원소는 유일한 최고점 아니면 유일한 최저점이므로 제외하고 평균을 계산한다. def solution(scores): answer = '' N = len(sco..
https://programmers.co.kr/learn/courses/30/lessons/12914 코딩테스트 연습 - 멀리 뛰기 효진이는 멀리 뛰기를 연습하고 있습니다. 효진이는 한번에 1칸, 또는 2칸을 뛸 수 있습니다. 칸이 총 4개 있을 때, 효진이는 (1칸, 1칸, 1칸, 1칸) (1칸, 2칸, 1칸) (1칸, 1칸, 2칸) (2칸, 1칸, 1칸) (2칸, 2 programmers.co.kr 조합, 파스칼의 삼각형을 이용하여 풀었다. 4를 예로 들면, 2칸을 기준으로 2칸을 뛴 적이 0번일 때 : 4C0 1번일 때 : 3C1 2번일 때 : 2C2 answer = 4C0(1) + 3C1(3) + 2C2(1) = 5 이다. 파스칼의 삼각형의 원리를 이용하여 2차원 배열에 각 조합 값을 담아(dp[..
https://programmers.co.kr/learn/courses/30/lessons/82612?language=java 코딩테스트 연습 - 1주차 새로 생긴 놀이기구는 인기가 매우 많아 줄이 끊이질 않습니다. 이 놀이기구의 원래 이용료는 price원 인데, 놀이기구를 N 번 째 이용한다면 원래 이용료의 N배를 받기로 하였습니다. 즉, 처음 이 programmers.co.kr 등차수열의 합 공식 (첫째 항 + 마지막 항) * 항의 개수 / 2 class Solution { public long solution(long price, long money, long count) { return Math.max(0, (price + (price * count)) * count / 2 - money); } }
https://programmers.co.kr/learn/courses/30/lessons/12929 코딩테스트 연습 - 올바른 괄호의 갯수 올바른 괄호란 (())나 ()와 같이 올바르게 모두 닫힌 괄호를 의미합니다. )(나 ())() 와 같은 괄호는 올바르지 않은 괄호가 됩니다. 괄호 쌍의 개수 n이 주어질 때, n개의 괄호 쌍으로 만들 수 있는 모 programmers.co.kr 카탈란 수로 점화식에 기반하여 동적 계획 알고리즘으로 풀었다. C0 = 1 Cn+1 = C0*Cn + C1*Cn-1 + C2*Cn-2 + ... + Cn*C0 answer = Cn class Solution { public int solution(int n) { int answer = 0; int[] dp = new int[..
https://programmers.co.kr/learn/courses/30/lessons/42579?language=java 코딩테스트 연습 - 베스트앨범 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 programmers.co.kr 정렬을 통하여 문제를 해결하였다. playsIndex 는 [재생 횟수, 고유번호] 로 이루어진 2차원 배열이다. palysIndex 를 재생 횟수를 기준으로 내림차순, 고유번호를 기준으로 오름차순 하여 map2 에 값을 넣을 때, 같은 고유번호라도 우선순위가 조건에 맞도록 하기 위해서다. map 은 어떤 genre 가 재생 횟수가 가장..
https://programmers.co.kr/learn/courses/30/lessons/42842?language=java 코딩테스트 연습 - 카펫 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 programmers.co.kr 분류는 탐색인데 수학으로 접근이 돼서 연립방정식으로 풀었다. 카펫의 가로의 길이를 n, 세로의 길이를 m 이라 하자. 그러면 1) n + m = n * m (brown + yellow) - ((n-2) * (m-2) (yellow)) / 2 + 2 로 나타낼 수 있다. 2) n * m 은 brown + yellow 로 1) 과 2) ..
https://programmers.co.kr/learn/courses/30/lessons/42587 코딩테스트 연습 - 프린터 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린 programmers.co.kr PriorityQueue 를 이용하여 중요도가 높은 순으로 인쇄(poll) 해준다. 대기목록에 우선순위가 가장 큰 값을 아래와 같이 for 를 통하여 차례대로 비교하면 중요도가 같은 문서에 대해서도 조건에 알맞게 답을 구할 수 있다. import java.util.*; class Solution { public int solution(int[] priorities,..
https://programmers.co.kr/learn/courses/30/lessons/43165 코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+ programmers.co.kr 단계별로 배열을 만들어(new int[2^i]) 모든 경우의 수를 검사하였다. class Solution { public int solution(int[] numbers, int target) { int answer = 0; int[] array = {0}; for (int i=0;i