[TIL] 정글 92일차 - 나만의 무기에 앞서

신승준·2022년 6월 28일
0

알고리즘

프로그래머스

  • Level 1
    • 이상한 문자 만들기
function solution(s) {
    let words = s.split(' ');
    let result = Array();
    
    for (let i = 0; i < words.length; i++) {
        result.push(words[i].split('').map((current, j) => j % 2 ? current.toLowerCase() : current.toUpperCase()).join(''));
    }
    
    return result.join(' ');
}

  • Level 1
    • [1차] 비밀지도
    • 이진수라는 키워드와, OR 연산이 사용될 것임을 직감하면 비트 연산임을 알아채야 한다.
    • 그렇다면 비트 연산에서 bin과 zfill에 대해 알고 있어야 한다.
def solution(n, arr1, arr2):
    result = list()
    
    for i in range(n):
        result.append(bin(arr1[i] | arr2[i])[2:].zfill(n).replace('1', '#').replace('0', ' '))
        
    return result

리트코드

  • 다이나믹 프로그래밍
      1. House Robber
class Solution:
    def rob(self, nums: List[int]) -> int:
        if len(nums) == 1:
            return nums[0]
        
        elif len(nums) == 2:
            return max(nums)
        
        elif len(nums) == 3:
            if nums[0] + nums[2] > nums[1]:
                return nums[0] + nums[2]
            
        dp = [0] * len(nums)
        dp[0] = nums[0]
        dp[1] = nums[1]
        dp[2] = nums[0] + nums[2]
        
        for i in range(3, len(nums)):
            dp[i] = max(dp[i - 2], dp[i - 3]) + nums[i]
            
        return max(dp)

언어

C

JavaScript

Python


궁금한 점

하루를 마치고

profile
메타몽 닮음 :) email: alohajune22@gmail.com

0개의 댓글