본문 바로가기
반응형

전체 글587

[Kotlin] Collection - Fold, Reduce 참고 : https://kotlinlang.org/docs/collection-aggregate.html#fold-and-reduce Fold와 Reduce는 컬렉션 요소들의 연산결과를 누적해서 다음 연산에서 사용한다. 차이점은 Reduce는 처음 연산 때 첫번째, 두번째 element를 가져와서 연산을 하는 반면, Fold는 init 인자와 첫번째 element를 가져와서 연산을 한다. val list = listOf(1, 2, 3, 4, 5) list.reduce { prev, ele -> println("$prev, $ele") (prev + ele) } // 1, 2 // 3, 3 // 6, 4 // 10, 5 list.fold(0) { prev, ele -> println("$prev, $ele.. 2022. 1. 16.
[Leetcode] 452. Minimum Number of Arrows to Burst Balloons 문제 : https://leetcode.com/problems/minimum-number-of-arrows-to-burst-balloons/ points 배열을 start 기준 오름차순, start가 동일한 경우 end 기준으로 오름차순 정렬한다. points 배열을 앞에서부터 탐색하면서 중복되는 범위를 저장해둔다. (let, duplicate) duplicate 범위의 start가 end 보다 작아지는 경우 정답을 +1 하고 현재 탐색중인 points 배열 원소값으로 duplicate를 갱신한다. 문제의 예제 1번 예시. points = [[10,16],[2,8],[1,6],[7,12]] [1, 6] x -> [1, 6] 갱신 (정답 + 1) [2, 8] [2, 6] [7, 12] [7, 6] -> [.. 2022. 1. 13.
[leetcode] 1463. Cherry Pickup II 문제 : https://leetcode.com/problems/cherry-pickup-ii/ rows x cols 체리 필드(grid)가 주어지고 각 요소값은 체리 수를 의미한다. 로봇1은 왼쪽 상단 (0,0)에서 출발하고 로봇2는 오른쪽 상단 (0, cols-1)에서 출발한다. 셀 (i,j)에서 로봇은 (i+1, j-1), (i+1, j), (i+1, j+1) 3가지 중에 한 곳으로 이동할 수 있다. 두 로봇이 동일한 셀에 있을 때 한 로봇만 체리를 가져갈 수 있다. 로봇들이 이동할 때, 수집할 수 있는 체리의 최대 수를 구해라. DP로 풀 수 있다. dp[row][col1][col2] = 로봇1은 (row, col1), 로봇2는 (row, col1)에 있을 때 수집가능한 체리수의 최대값. dp[ro.. 2022. 1. 11.
[Leetcode] 1041. Robot Bounded In Circle 문제 : https://leetcode.com/problems/robot-bounded-in-circle/ 로봇이 (0, 0) 위치에 북쪽 방향을 향하고 있다. 'G' : 1칸 앞으로. 'L' : 왼쪽으로 회전. 'R' : 오른쪽으로 회전. 로봇은 주어진 명령을 영원히 반복하며 이동한다고 할 때, 로봇이 특정 원을 벗어나지 않는지 구해라. 방향 회전은 L, R 90도씩만 움직이기 때문에 명령을 1번, 2번, 3번, 4번 수행 한 뒤 원점 (0, 0)으로 돌아올 수 있다면 특정 원을 벗어나지 않는 경우이고 4번 이내에 (0, 0)으로 돌아오지 않는다면 원을 벗어날 것이다. 시간복잡도는 O(N). 소스코드 : https://github.com/fpdjsns/Algorithm/blob/master/leetco.. 2022. 1. 11.
[Codejam][2021][QR] 2. Moons and Umbrellas 문제 : https://codingcompetitions.withgoogle.com/codejam/round/000000000043580a/00000000006d1145 X = CJ 비용, Y = JC 비용. S = C, J, ? 로 이루어진 문자열 S 문자열의 ? 문자에 C 혹은 J를 대체한다고 할 때, 지불해야 하는 최소 비용을 구해라. DP로 풀 수 있다. dp[0][i] = S[i]가 'C' 일 때, S[~i] 까지 최소 지불금액 dp[1][i] = S[i]가 'J' 일 때, S[~i] 까지 최소 지불금액 dp 배열은 초기 값은 만들 수 없음을 의미하는 INF 값으로 세팅한다. 그리고 S[0]이 'C' 혹은 '?'인 경우 dp[0][0] 을 0으로 갱신한다. 또한 S[0]이 'J' 혹은 '?'인 .. 2022. 1. 8.
PyCharm 입출력 파일 설정 https://withhamit.tistory.com/100 Visual Studio 명령 인수로 입출력 파일 설정 visual studio에서 디버깅시 파일입출력 or 콘솔에서 입출력을 하지않고 입력을 받는 방법. 디버깅 시 긴 입력값을 매번 입력하지 않을 수 있다. 프로젝트에 입력으로 받을 파일과 출력값을 저장할 withhamit.tistory.com c++ 알고리즘 코딩 시 input output을 콘솔로 입력, 출력하지 않고 파일로 입출력하게 설정하는 방법을 포스팅한 적이 있다. 이번엔 python으로 알고리즘 작성 시 사용하는 PyCharm에서 파일로 입출력을 받고 싶을 땐 어떻게 하는지에 대한 내용이다. 알고리즘 작성용 프로젝트를 하나 만든다. main.py엔 코드를 작성할 것이고 input... 2022. 1. 8.
반응형