일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 백준
- java
- 자바
- heapq
- 수학
- 이분탐색
- 위클리 챌린지
- 카카오
- 추석맞이 코딩챌린지
- 다익스트라
- 동적 계획법
- 정렬
- 파이썬
- Re
- KAKAO BLIND RECRUITMENT
- Zip
- 그리디
- 정규식
- Combinations
- dfs
- 프로그래머스
- programmers
- Set
- BFS
- divmod
- lambda
- DateTime
- backjoon
- 재귀함수
- python
- Today
- Total
목록Coding Test (191)
상상쓰
https://programmers.co.kr/learn/courses/30/lessons/17679 코딩테스트 연습 - [1차] 프렌즈4블록 프렌즈4블록 블라인드 공채를 통과한 신입 사원 라이언은 신규 게임 개발 업무를 맡게 되었다. 이번에 출시할 게임 제목은 "프렌즈4블록". 같은 모양의 카카오프렌즈 블록이 2×2 형태로 4개가 붙 programmers.co.kr 다른 접근으로 푼 게 아니라서 시간 초과에 걸리지 않을까 했는데 정답이 됐다. 1) board 행렬을 돌면서 사라지는 블록 4개의 좌표를 set 에 담는다. 2) set 에 있는 좌표에 해당하는 board 의 값을 '0' 으로 바꿔주고 해당하는 열의 행 값을 한 칸 아래로 내린다. '0' 은 맨 위로 올려 board 를 다시 설정한다. 이..
https://www.acmicpc.net/problem/2775 2775번: 부녀회장이 될테야 첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 정수 k, 두 번째 줄에 정수 n이 주어진다 www.acmicpc.net 0층일 때, dp = [1, 2, 3, 4, 5, 6, ...] 1층일 때, dp = [1, 3, 6, 10, 15, 21, ...] 2층일 때, dp = [1, 4, 10, 20, 35, 56, ...] ... 즉, 층이 올라갈 때 동적 계획법으로 구현해주면 된다. (dp[i] = dp[i-1] + dp[i]) import sys T = int(sys.stdin.readline()) for i in range(T): dp = [j fo..
https://programmers.co.kr/learn/courses/30/lessons/17678 코딩테스트 연습 - [1차] 셔틀버스 10 60 45 ["23:59","23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59"] "18:00" programmers.co.kr busTimetable 은 셔틀 운행 시각을 나타낸다. busTimetable = ['09:00', '09:00' + (t분 * 1), ..., '09:00' + (t분 * (n-1))] dictionary 를 이용하여 busTimetable 의 원소 ..
https://programmers.co.kr/learn/courses/30/lessons/42890 코딩테스트 연습 - 후보키 [["100","ryan","music","2"],["200","apeach","math","2"],["300","tube","computer","3"],["400","con","computer","4"],["500","muzi","music","3"],["600","apeach","music","2"]] 2 programmers.co.kr 유일성과 최소성을 만족하는 후보키의 개수를 구하는 문제다. combinations 을 이용하여 1개부터 열의 개수(len(relation[0])) 까지 조합할 수 있는 경우를 구한 뒤 유일성(len(s) == N)을 확인한다. 다음, 길이가..
https://programmers.co.kr/learn/courses/30/lessons/17677 코딩테스트 연습 - [1차] 뉴스 클러스터링 뉴스 클러스터링 여러 언론사에서 쏟아지는 뉴스, 특히 속보성 뉴스를 보면 비슷비슷한 제목의 기사가 많아 정작 필요한 기사를 찾기가 어렵다. Daum 뉴스의 개발 업무를 맡게 된 신입사원 튜브 programmers.co.kr str1, str2 의 다중집합을 만든다. 이때 만들어지는 집합은 중복을 허용한다. 그래서 makeSet 에서 return 되는 값은 list 이다. 교집합과 합집합을 구한 뒤(set() 은 중복허용을 하지 않는다.) 중복을 허용하므로 교집합의 한 원소 e 는 list 인 s1 과 s2 에 들어있는 개수 중 가장 적은 개수만큼 교집합에 속한..
https://programmers.co.kr/learn/courses/30/lessons/84325 코딩테스트 연습 - 4주차 개발자가 사용하는 언어와 언어 선호도를 입력하면 그에 맞는 직업군을 추천해주는 알고리즘을 개발하려고 합니다. 아래 표는 5개 직업군 별로 많이 사용하는 5개 언어에 직업군 언어 점수를 부 programmers.co.kr 직업군 언어 점수와 선호도를 내적하여 점수를 구한 뒤 직업군과 그 점수를 정렬하여 조건에 맞는 직업군을 반환하였다. def solution(table, languages, preference): return sorted(list(map(lambda x : [x.split()[0], sum([(6 - x.split().index(languages[i])) * pr..
https://programmers.co.kr/learn/courses/30/lessons/42889?language=python3 코딩테스트 연습 - 실패율 실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스 programmers.co.kr Counter 도 써보고 싶었고 zip 도 한 번 써보고 싶었다. Counter 를 이용하여 진행 중인 스테이지 번호의 개수를 알아낸다. print(count) = Counter({2: 3, 3: 2, 1: 1, 6: 1, 4: 1}) 1번 스테이지부터 실패율을 계산한다. (T = 해당 스테이지를 클리어한 사람의 수) zip 을 이..
https://programmers.co.kr/learn/courses/30/lessons/60058 코딩테스트 연습 - 괄호 변환 카카오에 신입 개발자로 입사한 "콘"은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를 programmers.co.kr 균형잡힌 괄호 문자열, c == 0 올바른 괄호 문자열, t = True 를 가지고 문제의 4단계를 재귀함수를 이용해 진행하면 된다. def solution(p): answer = '' if p != '': n = len(p) c = 0 t = True for i in range(n): c = c + 1 if p[i] == '(' else c - 1 if c < ..
https://programmers.co.kr/learn/courses/30/lessons/72411 코딩테스트 연습 - 메뉴 리뉴얼 레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서 programmers.co.kr 이 문제를 처음 풀었을 때 문제 이해를 잘 못해서 시간이 조금 걸렸었다. 쉽게 말하면 정해진 개수로 단품 요리를 만들었을 때 가장 많이 주문된 조합을 구하면 된다. combinations 을 활용하여 정해진 개수에 대해 조합을 구하여 menuList 에 담고 Counter 를 활용하여 조합된 요리가 몇 번 나왔는지 확인한다. 입출력 예제에서 정해진 개수가 2일 때..
https://programmers.co.kr/learn/courses/30/lessons/60057 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문 programmers.co.kr 제일 앞에서부터 정해진 길이로 잘라야 해서 입출력 예로 정해진 길이가 2라면 aa, bb bb, ac ac, cc 의 경우만 비교해주면 된다. cnt 로 중복된 문자열을 검사하여 예를 들면 정해진 길이가 1이고 'c' 에 대해서 cnt = 3 이므로 'ccc' 가 '3c' 가 된다. 즉, 길이가 i * cnt 에서 i + len(str(cnt)) 가 된다..