일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- divmod
- BFS
- heapq
- lambda
- 동적 계획법
- DateTime
- 다익스트라
- Re
- 추석맞이 코딩챌린지
- 정규식
- Zip
- 파이썬
- 카카오
- 수학
- backjoon
- 이분탐색
- 자바
- 정렬
- python
- dfs
- KAKAO BLIND RECRUITMENT
- 재귀함수
- java
- 프로그래머스
- 백준
- Set
- programmers
- Today
- Total
목록프로그래머스 (99)
상상쓰
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)) 가 된다..
https://programmers.co.kr/learn/courses/30/lessons/72410 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 programmers.co.kr 파이썬 정규표현식 re 를 활용하여 1단계부터 7단계까지 순차적으로 answer 를 재정의한다. ljust 함수로 길이가 3이 될 때까지 공백을 answer 의 마지막 문자로 채운다. import re def solution(new_id): answer = new_id.lower() answer = re.sub('[^a-z0-9\-_.]', '', ans..
https://programmers.co.kr/learn/courses/30/lessons/84021 코딩테스트 연습 - 3주차 [[1,1,0,0,1,0],[0,0,1,0,1,0],[0,1,1,0,0,1],[1,1,0,1,1,1],[1,0,0,0,1,0],[0,1,1,1,0,0]] [[1,0,0,1,1,0],[1,0,1,0,1,0],[0,1,1,0,1,1],[0,0,1,0,0,0],[1,1,0,1,1,0],[0,1,0,0,0,0]] 14 [[0,0,0],[1,1,0],[1,1,1]] [[1,1,1],[1,0,0],[0,0,0]] 0 programmers.co.kr 위클리 챌린지 3주차 문제이다. 갑자기 난이도가 올라갔다. 문제의 첫 번째 입출력 예로 설명을 하자면, game_board = [1, 1, 0..
https://programmers.co.kr/learn/courses/30/lessons/49995?language=java 코딩테스트 연습 - 쿠키 구입 과자를 바구니 단위로 파는 가게가 있습니다. 이 가게는 1번부터 N번까지 차례로 번호가 붙은 바구니 N개가 일렬로 나열해 놨습니다. 철수는 두 아들에게 줄 과자를 사려합니다. 첫째 아들에게는 programmers.co.kr 기준점 m 을 잡고 i 는 왼쪽으로, r 은 오른쪽으로 이동하면서 합한 과자의 수를 비교하였다. cookie = {1, 1, 2, 3} 을 예로 들 때, m 은 둘째 아들에게 줄 수 있는 바구니 중 가장 작은 번호로 기준을 잡았기 때문에 1번부터 시작한다. fir = cookie[m - 1], sec = cookie[m] 으로 시..
https://programmers.co.kr/learn/courses/30/lessons/12938 코딩테스트 연습 - 최고의 집합 자연수 n 개로 이루어진 중복 집합(multi set, 편의상 이후에는 "집합"으로 통칭) 중에 다음 두 조건을 만족하는 집합을 최고의 집합이라고 합니다. 각 원소의 합이 S가 되는 수의 집합 위 조건을 만 programmers.co.kr 두 수의 합이 같을 때 두 수의 차이가 가장 작다면 곱이 가장 크다. x * (s-x) 로 그래프만 그려보더라도 위의 명제가 사실이라는 것을 이해할 수 있을 것이다. 위의 사실로 n 이 3이상일 때 각 수의 차이가 가장 작을 때 곱이 가장 크다는 것을 이해할 수 있다. def solution(n, s): answer = [] if n >..