본문 바로가기

전체 글657

키움증권 로그인 개발 보호되어 있는 글 입니다. 2020. 6. 16.
[leetcode][1029] Two City Scheduling 문제 : https://leetcode.com/problems/two-city-scheduling/ 2N명을 도시 A, B에 각각 N명씩 이동시키려고 한다. 각각 A, B로 이동시키는 비용이 주어질 때 이동시키는 비용의 최소값을 구해라. A아니면 B로 이동시킨다. -> 둘 중 하나는 선택되어야 한다. 하나는 선택되어야 하므로 한 명의 A, B 이동 비용을 비교해야 되고 두 방법 중 이동 비용이 작은쪽으로 이동시켜야 이득이다. 각자 A로 이동시키는 비용 - B로 이동시키는 비용을 구해서 오름차순으로 정렬한다. (B가 A보다 크거나, A비용이 더 크지만 B와의 비용 차이가 별로 나지 않을 수록 앞에 정렬된다.) 앞에서부터 N명은 A로, 그 뒤 N명은 B로 이동시킨다. 시간복잡도는 O(NlogN). 소스코드 .. 2020. 6. 4.
[leetcode][72] Edit Distance 문제 : https://leetcode.com/problems/edit-distance/ word1에서 word2를 만들고자 한다. 최소 편집횟수를 구하라. 편집 방법은 총 3가지가 있다. 1) 문자 추가. 2) 문자 삭제. 3) 문자 대체(변경) 대표적 DP 문제 중 하나. dp[i][j] = word1[0..i]를 word2[0..j]로 만들 때 최소 편집횟수. word1[i], word2[j]가 같다면 dp[i][j] = dp[i-1][j-1]. word1[i], word2[j]가 다른경우 i) 문자 추가 : dp[i][j-1] + 1 ii) 문자 삭제 : dp[i-1][j] + 1 iii) 문자 대체 : dp[i-1][j-1] + 1 위 3가지 방법 중 최소값이 dp[i][j]가 된다. 이를 열우.. 2020. 6. 2.
[Kickstart][2020][Round C] 1. Countdown 문제 : https://codingcompetitions.withgoogle.com/kickstart/round/000000000019ff43/00000000003380d2 크기가 N인 양수 배열이 주어질 때, K 카운트다운이 배열에 몇 번 발생하는지 구해라. K 카운트 다운은 K 부터 1까지 1씩 감소하는 등차수열이다. ex) 3카운트다운 = 3, 2, 1 4 3 2 1 5 3 3 2 1 배열에서 3 카운트 다운은 2번 발생한다. 정답 가능한지 여부를 저장하는 플래그 변수를 추가한다. 배열을 앞에서부터 탐색하면서 K가 나올 때 해당 플래그를 true로 갱신한다. (K 카운트다운 시작) 탐색중인 수가 K가 아닌 경우는 이전 배열 값 -1 이 탐색 중인 값과 같지 않은 경우 정답 가능 플래그를 false로.. 2020. 5. 23.
[leetcode][1277] Count Square Submatrices with All Ones 문제 : https://leetcode.com/problems/count-square-submatrices-with-all-ones/ 1과 0으로 이루어진 N x M 배열이 주어지면 1로 이루어진 정사각형의 개수를 구하라. 행, 열 subsum을 구한 뒤 이를 이용하여 구했다. 입력배열이 위와 같으면 행, 열 부분합 배열은 각각 위와같이 만들어진다. (2,1) 한 칸이 정사각형인지 판단하는 방법은 행 부분합에서 (2, 1) - (1,1) 값과 열 부분합에서 (2,1) - (2,0) 값이 둘 다 1이어야 한다. 즉, (2,1) 값이 1인지 확인하기만 하면 된다. 그 다음 (2,1)을 정사각형의 왼쪽 모서리로 두고 사이즈가 2인 정사각형이 가능한지 판단해보자. 이전 단계에서 (2, 1)은 모두 1인 것을 판.. 2020. 5. 23.
[20200512] 유니세프 후원 1주년 어느덧 1주년. 나중에 맥북 사면 거기에다가 붙여야지~ 2020. 5. 12.