일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 프로그래머스
- Combinations
- heapq
- 동적 계획법
- 정규식
- Set
- backjoon
- 다익스트라
- 정렬
- python
- 자바
- KAKAO BLIND RECRUITMENT
- programmers
- 위클리 챌린지
- divmod
- Zip
- 이분탐색
- java
- 백준
- DateTime
- 카카오
- BFS
- 파이썬
- dfs
- 추석맞이 코딩챌린지
- 수학
- 재귀함수
- Re
- 그리디
- lambda
- Today
- Total
목록Coding Test (191)
상상쓰
https://www.acmicpc.net/problem/1032 1032번: 명령 프롬프트 첫째 줄에 파일 이름의 개수 N이 주어진다. 둘째 줄부터 N개의 줄에는 파일 이름이 주어진다. N은 50보다 작거나 같은 자연수이고 파일 이름의 길이는 모두 같고 길이는 최대 50이다. 파일이름은 www.acmicpc.net 모든 문자열의 같은 위치의 문자가 같으면 그대로 출력하고 하나라도 다르면 '?' 를 출력한다. import sys N = int(sys.stdin.readline()) S = list(sys.stdin.readline().strip()) M = len(S) for i in range(N - 1): T = list(sys.stdin.readline().strip()) for j in range..
https://www.acmicpc.net/problem/2960 2960번: 에라토스테네스의 체 2, 4, 6, 8, 10, 3, 9, 5, 7 순서대로 지워진다. 7번째 지워진 수는 9이다. www.acmicpc.net number 배열을 만들어 차례대로 값을 Fasle 로 바꿔가며 K 번째 해당하는 값을 구하면 된다. import sys, math N, K = map(int, sys.stdin.readline().split()) answer = 0 number = [True] * (N + 1) for i in range(2, N + 1): for j in range(2, N + 1): if number[j]: if j % i == 0: number[j] = False K -= 1 if K == 0:..
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
https://programmers.co.kr/learn/courses/30/lessons/43162 코딩테스트 연습 - 네트워크 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있 programmers.co.kr DFS 알고리즘을 통하여 0 ~ n-1 을 분할한다. 컴퓨터의 번호가 check 안 되어 있을 때(check[i] == 0), 재귀함수를 통해 이어져 있는 컴퓨터들의 번호를 다 check 해주고(check[i] = 1) answer 에 1을 더해준다. def solution(n, computers): answer = 0 check = [0] * n for ..
https://www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 스택은 Last In First Out! import sys N = int(sys.stdin.readline()) stack = [] for i in range(N): cmd = sys.stdin.readline().strip().split() if cmd[0] == 'push': stack.append(cmd[1]) elif cmd[0] == 'pop': print(-1 if ..
https://programmers.co.kr/learn/courses/30/lessons/64065 코딩테스트 연습 - 튜플 "{{2},{2,1},{2,1,3},{2,1,3,4}}" [2, 1, 3, 4] "{{1,2,3},{2,1},{1,2,4,3},{2}}" [2, 1, 3, 4] "{{4,2,3},{3},{2,3,4,1},{2,3}}" [3, 2, 4, 1] programmers.co.kr 문자열 s 를 배열로 만들어 길이에 따라 정렬한 뒤 차례대로 중복 없이 answer 에 담으면 된다. def solution(s): answer = [] s = s.replace('{', '[') s = s.replace('}', ']') result = eval(s) result.sort(key = len) ..