일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 백준 17626
- 백준 파이썬
- MySQL
- 파이썬
- 프로래머스
- spring oauth
- JVM
- Spring
- 프로그래머스
- with recursive
- 웹어플리케이션 서버
- java
- 백준 17779
- JPA
- MSA
- 백준 16719
- 백준 16236
- Kotlin
- spring cloud
- springboot
- 백준
- 백준 19238
- spring security
- 백준 16235
- Spring Boot
- 백준 15685
- sql 기술면접
- java 기술면접
- re.split
- Coroutine
- Today
- Total
목록프로그래머스 (76)
시작이 반
https://programmers.co.kr/learn/courses/30/lessons/60057 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문 programmers.co.kr 문제 설명 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문자열에서 같은 값이 연속해서 나타나는 것을 그 문자의 개수와 반복되는 값으로 표현하여 더 짧은 문자열로 줄여서 표현하는 알고리즘을 공부하고 있습니다. 간단한 ..
programmers.co.kr/learn/courses/30/lessons/67258 코딩테스트 연습 - 보석 쇼핑 ["DIA", "RUBY", "RUBY", "DIA", "DIA", "EMERALD", "SAPPHIRE", "DIA"] [3, 7] programmers.co.kr 모든 보석을 포함하는 최소 구간을 구하는 문제이다. 우선 모든 구간이기 때문에 안될걸 알지만 생각나는 방법이 없어서 nC2를 이용하여 모든 구간을 구하여 풀었다. gems 배열의 크기는 1 이상 100,000 이하이다 100000C2를 하면 50억(?)정도 나온다... 조합으로 푼 코드 import math min_result = list() min_range = math.inf def solution(gems): gems_..
programmers.co.kr/learn/courses/30/lessons/67257 코딩테스트 연습 - 수식 최대화 IT 벤처 회사를 운영하고 있는 라이언은 매년 사내 해커톤 대회를 개최하여 우승자에게 상금을 지급하고 있습니다. 이번 대회에서는 우승자에게 지급되는 상금을 이전 대회와는 다르게 다음과 programmers.co.kr 순열 문제이다. 사실 최대 조합이 3! 이기때문에 내장된 permutation 함수를 써도 시간초과가 안나오는거같다... 그리고 eval라는 함수가 있는데 이 함수는 문자열 식에 대해서 계산을 해주는 함수인데 알고있었지만 쓰지 않도록 하고있는데 답을보니까 써도 시간초과가 나지 않는가보다.. permutation을 백트래킹을 이용하여 구하였고 문자열 계산은 stack을 이용하..
programmers.co.kr/learn/courses/30/lessons/67256 코딩테스트 연습 - 키패드 누르기 [1, 3, 4, 5, 8, 2, 1, 4, 5, 9, 5] "right" "LRLLLRLLRRL" [7, 0, 8, 2, 8, 3, 1, 5, 7, 6, 2] "left" "LRLLRRLLLRR" [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] "right" "LLRLLRLLRL" programmers.co.kr 백준의 20436번 문제와 비슷하다. 각 순간마다 어느 손가락으로 키패드를 누를지 정한다. list를 이용하여 가상의 키패드를 만들고 눌러아할 숫자가 나올때마다 좌표를 계산한다. def solution(numbers, hand): answer = '' keypad =..
programmers.co.kr/learn/courses/30/lessons/72412
programmers.co.kr/learn/courses/30/lessons/72411 코딩테스트 연습 - 메뉴 리뉴얼 레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서 programmers.co.kr 조합, 사전 관련 문제이다. course 수에 따른 조합을 구하여 사전에 넣는다. from itertools import combinations def solution(orders, course): answer = [] for cour in course: menus = dict() temps = list() for order in orders: temps.extend(list(..
programmers.co.kr/learn/courses/30/lessons/72410 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 programmers.co.kr 정규 표현식 이용 import re def solution(new_id): #1단계 answer = new_id.lower() #2단계 answer = re.sub('[~!@#$%^&*\(\)=+\[\{\]\}:?,\/]', '', answer) #3단계 answer = re.sub('\.+', '.', answer) #4단계 if answer: if answer[0]..
이분탐색 문젱이다. 최대로 걸리는 시간과 최소로 걸리는 시간을 기준으로 문제를 푼다. 심사관이 주어진 시간동안 모든 사람을 처리할 수 있으면 right값을 줄여주고 심사관이 주어진 시간동안 모든 사람을 처리할 수 없으면 left값을 줄여준다. def solution(n, times): answer = 0 left = 1 right = max(times) * n while left = n: # 종료되기 전에 answer을 바꿔줌 right = mid - 1 answer = mid else: # 종료 조건 바뀌는 부분 left = mid + 1 return answer solution(6, [7, 10])