본문 바로가기

전체 글657

[Window] CMD 드라이브 이동 폴더 이동을 하려면 cd 폴더경로 를 명령어를 사용하지만 다른 드라이브의 경로라면 정상작동하지 않는다. 드라이브이름: 다른 드라이브 이동시 cd 명령어를 제거한 드라이브이름: 으로 이동가능하다. 예를 들어, C 드라이브 경로에서 D 드라이브로 이동하려면 D: 를 실행. D 드라이브 경로에서 C 드라이브로 이동하려면 C: 를 실행한다. 캡쳐화면은 Anaconda Prompt이긴 하지만 cmd에서도 동일하게 작동된다. 2021. 4. 17.
[Leetcode][86] Partition List 문제 : https://leetcode.com/problems/partition-list/ 리스트노드의 head와 정수 x가 주어질 때, x보다 작은 val를 가진 노드들(let, left)은 왼쪽, x와 같거나 큰 val를 가진 노드들(let, right)은 오른쪽으로 정렬된 리스트노드의 헤드를 구하라. 이 때, left, right 그룹 내에서의 노드들은 기존 정렬 순서가 유지되어야 한다. x보다 작은 val 를 가진 노드들을 저장하는 리스트 노드(left)와 x와 같거나 큰 val를 가진 노드들을 저장하는 리스트 노드(right)를 분리시킨다. 만일 left 리스트 노드가 비어있다면 right 리스트 노드의 헤드를 반환한다. left 리스트노드가 비어있지 않다면 left 리스트노드의 마지막 노드의 .. 2021. 4. 14.
[Leetcode][17] Letter Combinations of a Phone Number 문제 : leetcode.com/problems/letter-combinations-of-a-phone-number/ 전화 버튼과 동일한 숫자와 문자의 매핑이 있다. 2~9까지의 숫자로 이루어진 문자열이 주어지면 가능한 모든 문자 조합을 반환해라. 하나의 숫자에 복수개의 문자가 매핑되므로 dict[숫자] = 문자의 배열 을 먼저 구해준다. 가능한 문자 조합들은 백트래킹을 이용하여 구한다. 예시로 주어진 23이면 1. 빈 문자열부터 시작해서 2에 해당하는 문자들 중 하나를 넣고("a") 다음 숫자를 판단한다. 2. "a" 이후 3에 해당하는 문자들 중 하나를 세팅한다. "ad". 모든 digits들의 숫자를 판단했으므로 "ad"를 정답에 추가한다. 3. 가장 마지막 문자를 제거한 후('d'가 제거되어 "a.. 2021. 4. 10.
[Kickstart][2021][Round A] 1. K-Goodness String 문제 : codingcompetitions.withgoogle.com/kickstart/round/0000000000436140/000000000068cca3 입력 문자열을 탐색하면서 S[i] != S[N-i+1] 인 문자의 개수(let, cnt)를 센다. K와 cnt의 차이가 정답이 된다. 시간복잡도는 O(N/2). 소스코드 : github.com/fpdjsns/Algorithm/blob/master/codejam/kickstart/2021/roundA/1.%20K-Goodness%20String.cpp 2021. 3. 28.
[leetcode][870] Advantage Shuffle 문제 : leetcode.com/problems/advantage-shuffle/ 길이가 같은 정수 배열 A, B이 주어질 때, A의 원소의 순서를 변경하여 A[i] > B[i]인 원소의 개수가 최대가 되는 수열 A를 구하여라. 기본 아이디어는 A[i] > B[i] (조건)를 만들 수 있는 A[i] 값은 A 원소가 클수록 조건을 만족할 가능성이 높으며 A 원소가 작을수록 조건을 만족할 가능성이 낮다. 즉, 큰 원소값이 조건을 만족할 수 없으면 이는 작은 원소값도 만족할 수 없다. 따라서 큰 원소값을 세팅할 수 있는 곳에 먼저 세팅하고, 큰 원소값을 사용할 수 없는 곳은 버리는 수로 작은 원소값으로 대체한다. A 배열을 오름차순 정렬하고, B 배열을 {원소값, 인덱스} 배열로 변경하여 이를 오름차순 정렬한.. 2021. 3. 26.
[programmers][2021카카오공채] 광고 삽입 문제 : programmers.co.kr/learn/courses/30/lessons/72414 부분합 문제. hh:mm:ss 로 이루어진 문자열 시간으로는 계산하기 힘드므로 플레이타임, 광고시간, log 시간들 모두 second로 변환한 후 계산한다. log의 시작 시간을 start, 종료 시간을 end라 한다면 subSum[start]++, subSum[end]-- 로 갱신한다. 예를 들어, start가 1, end가 3이라면 index (i) 0 1 2 3 4 subSum[i] 0 1 0 -1 0 모든 log 정보를 탐색하며 subSum을 갱신했다면 처음부터 모든 subSum을 탐색하며 subSum[i] = subSum[i] + subSum[i-1]로 정보를 갱신한다. 갱신하면 특정 시간대의 광고를.. 2021. 3. 24.