목록알고리즘/프로그래머스 (54)
이숭간 공부기록
https://programmers.co.kr/learn/courses/30/lessons/72411 코딩테스트 연습 - 메뉴 리뉴얼 레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서 programmers.co.kr 문제유형 : 문자열, 구현 문제풀이 : 주어진 orders에 따라서 해당하는 각각의 개수만큼의 조합을 찾는다. 예를들어, 주어진 배열이 ["ABCFG", "AC", "CDE", "ACDE", "BCFG", "ACDEH"],[2,3,4] 일때 // 각 원소에 대해서 차례로 2개개수 조합, 3개개수 조합, 4개개수 조합 [('A', 'B'), ('A', 'C'), (..
https://programmers.co.kr/learn/courses/30/lessons/72410 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 programmers.co.kr 문제유형 : 문자열, 구현 문제풀이 : 정규표현식 문자열(알파벳소문자, 알파벳ㄷ문자, 숫자, - ,_, . 를 제외한(^) 모든문자 제거하기 new_id = re.sub(r"[^a-zA-Z0-9-_.]", "", new_id) 문자열 양쪽끝 특정문자 제거 strip() : 파라미터없을때는 공백을제거, 특정문자를 제거하고싶으면 해당문자를 파라미터로 주면됨 ..
https://programmers.co.kr/learn/courses/30/lessons/42579 코딩테스트 연습 - 베스트앨범 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 programmers.co.kr 문제유형 : 해시, 구현 문제풀이 : 1. 장르를 키로하고 튜플로 (노래번호, 노래재생횟수)를 값으로 하는 딕셔너리를 만든다. {'classic': [(0, 500), (2, 150), (3, 500)], 'pop': [(1, 600), (4, 2500)]} 2. 장르의 총 재생횟수가 높은순으로 소팅한다. -> 재생횟수가 같으면 노래인덱스가 낮은순에서 높은순으..
https://programmers.co.kr/learn/courses/30/lessons/42584 코딩테스트 연습 - 주식가격 초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. 제한사항 prices의 각 가격은 1 이상 10,00 programmers.co.kr 문제유형 : 스택/큐, 구현 문제풀이 : 문제구분은 스택/큐로 되어있는데 나는 이중반복문으로 O(n^2)으로 풀었다.. ( 근데 왜 효율성 통과된거지..?) 풀이관점에서보면 돈이 떨어지는 지점에서, 그 지점도 포함시켜서? 시간을 계산해야한다는것만 주의하면 된다. 스택을 사용한 더 빠르고, 문제출제 취지에 맞는 풀이가 있었..
https://programmers.co.kr/learn/courses/30/lessons/42747 코딩테스트 연습 - H-Index H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다. 어떤 과학자가 발표 programmers.co.kr 문제유형 : 정렬, 구현 문제풀이 : h의 최댓값은 n이다. n부터 하나씩 내려가면서 조건에 맞는 값을 찾다가 처음으로 찾는값이 h의 최댓값이므로 해당값을 반환한다. 조건1(h번 인용된것이 h개 이상) 을 만족하는것을 찾으면, 그 개수가 inyong개 라고할때 자동으로 남은 것(전체-inyong개)들은 h보다 작게 되므로 굳이 남..
https://programmers.co.kr/learn/courses/30/lessons/42746 코딩테스트 연습 - 가장 큰 수 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 programmers.co.kr 문제유형 : 정렬 문제풀이 : 문자열 길이를 3배로 늘린 후에 비교하는 방식 ( 원소가 1000이하이므로 ) - 핵심 아이디어 문자열에서의 대소비교와 일반숫자의 대소비교가 다르기때문에 가능한 코드 문자열 비교연산의 경우에 문자열 첫번째 인덱스를 아스키숫자로 바꿔서 비교하고, 같으면 그 다음 인덱스를..