목록알고리즘 (129)
이숭간 공부기록
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이하이므로 ) - 핵심 아이디어 문자열에서의 대소비교와 일반숫자의 대소비교가 다르기때문에 가능한 코드 문자열 비교연산의 경우에 문자열 첫번째 인덱스를 아스키숫자로 바꿔서 비교하고, 같으면 그 다음 인덱스를..
https://programmers.co.kr/learn/courses/30/lessons/43164 코딩테스트 연습 - 여행경로 [["ICN", "SFO"], ["ICN", "ATL"], ["SFO", "ATL"], ["ATL", "ICN"], ["ATL","SFO"]] ["ICN", "ATL", "ICN", "SFO", "ATL", "SFO"] programmers.co.kr 문제유형 : DFS 문제풀이 : 하나의 여행지를 노드로 보지않고 하나의 PATH(출발지~도착지)를 하나의 노드로 보고 풀었다. 전형적인 DFS문제이면서 살짝의 변형이 있는 문제이다. ICN ~ @@@ 인 노드를 시작노드로 하여 DFS를 진행한다. DFS의 depth가 tickets길이-1 이면 전체 항공권을 모두 사용한것이 되므..
https://programmers.co.kr/learn/courses/30/lessons/43163 코딩테스트 연습 - 단어 변환 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 programmers.co.kr 문제유형 : DFS/BFS 문제풀이 DFS의 경로상에 순서가 있는경우 (a-b-c 와 a-c-b가 다른경우!!) dfs의 재귀호출이 리턴되는 지점에서 방문처리를 다시 풀어줘야한다 단어가 하나의 노드가되고 차이가 1인 노드끼리 연결되있다고 생각한다. 현재노드로부터 차이가 1인 노드들을 순차적으로 방문탐색하면서 target..