본문 바로가기

개발 공부/Algorithm

(2)
[Alg] Daily LeetCoding Challenge 22.03.03: 413 Arithmetic Slices 문제: https://leetcode.com/problems/arithmetic-slices/ 입력 배열에서 arithmetic 부분배열을 출력하는 문제! arithmetic이 되기 위해서는 적어도 3개의 원소가 들어가야 하고, 연속되는 두 개의 원소의 차가 2여야 한다. nums가 [1, 2, 3, 4, 5] 라고 가정해보자. 만들 수 있는 arithmetic은 [1, 2, 3], [2, 3, 4], [3, 4, 5], [1, 2, 3, 4], [1, 2, 3, 4, 5], [2, 3, 4, 5] 로 총 6개가 된다. 여기서의 규칙은 먼저 [1, 2, 3]과 [2, 3, 4]가 만들어지면, [1, 2, 3, 4]도 만들 수 있다는 것이다. 더군다나 [3, 4, 5]까지 만들 수 있다면, [2, 3, 4..
[Alg] Daily LeetCoding Challenge 22.03.01: 338 Counting Bits 문제: https://leetcode.com/problems/counting-bits/ 0부터 n을 Binary number로 변환한 값에 속한 1의 개수를 배열로 반환하는 문제이다.문제의 난이도는 Easy로 되어있지만, Binary number에 대해 익숙하지 않다면 그닥 Easy~ 하지는 않을 수 있다. Binary number를 쭉 한번 그려보자. 내가 그린... Binary search... 너무 삐뚤빼뚤하지만... ^_^;; n을 Binary number로 변환하면 왼쪽처럼 나올 것이고, k는 1의 개수를 의미한다. 이렇게 보니까 규칙이 한 눈에 보인다! 2의 제곱들은 1이 한 개고, 그 뒤에 있는 애들의 값들은 어떠한 규칙으로 계속 반복된다. 그리고 그 값이 조금씩 커지는데 두개씩 짝지어보면..