블로그 내용을 위해서 간단하더라도 양을 많이 채워보자라는 느낌으로 글들을 작성했다.

생각보다 더 조회수는 나오지 않았고, 특정 포스팅에 조회가 몰리는 현상이 발생했다.

 

또한 글을 작성하면서 만족스럽지 못한 퀄리티에 실망했던 적도 많았다.(특히 TIL)

 

TIL이 무슨 소용일까 어차피 매일 공부하고 기록하는데

차라리 블로그에는 알찬 정보들로 구성해서 내가 두고두고 다시 보아도 도움이 되는 글들을 만들어 놓는 것이 좋을 것이라 판단했다.

특히 TIL의 경우 카테고리 선정이 꽤나 힘들었고 자료를 다시 찾는 과정도 불편했다.

 

이제는 포스팅 주기는 길지만 알찬 포스팅으로 준비해보려한다.

어차피 공부용 블로그지만 다른 분들도 좋은 포스팅을 함께 보는 게 더 낫지 않을까 싶다.

'Others > 일상' 카테고리의 다른 글

Snowflake ascent 참가 후기  (0) 2024.04.25
기존 블로그 주소  (0) 2024.04.24
Data Engineering Zoomcamp  (0) 2024.03.18
일상?  (0) 2024.03.15

오늘의 학습 키워드:  그래프, 해시

문제: 대충 만든 자판

https://school.programmers.co.kr/learn/courses/30/lessons/160586

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

풀이

각 버튼이 최소로 눌리는 수를 해시값에 넣어두고 그 값보다 최소가 되는 경우에 값을 변경해주면서 각 버튼의 최소로 눌리는 횟수를 계산합니다.

def solution(keymap, targets):
    answer = []
    dict1={}
    for i in keymap:
        for j in range(len(i)):
            if i[j] not in dict1:
                dict1[i[j]] = j+1
            elif dict1[i[j]] > j+1:
                dict1[i[j]] = j+1

    for i in targets:
        tmp = 0
        for j in i:
            if j not in dict1:
                tmp = -1
                break   
            else:
                tmp+=dict1[j]
        answer.append(tmp)
    return answer

오늘의 학습 키워드:  그리디

문제: 마법의 엘리베이터

https://school.programmers.co.kr/learn/courses/30/lessons/148653

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

풀이

이번 풀이는 다음을 참고해서 진행했습니다.

https://velog.io/@isayaksh/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-Programmers-%EB%A7%88%EB%B2%95%EC%9D%98-%EC%97%98%EB%A6%AC%EB%B2%A0%EC%9D%B4%ED%84%B0-Python

 

[알고리즘] Programmers 마법의 엘리베이터 #Python

[알고리즘] Programmers 마법의 엘리베이터 #Python

velog.io

 

각 자리의 값에 따른 돌의 사용 횟수를 계산할 때 다음 값에서 빼야 하는 경우 (16 -> 20 -4)에 대한 구현이 가장 어려웠습니다.

위의 포스팅에 나온 풀이를 보며 조금 편하게 이를 계산하는 방법을 참고했습니다.

전체 코드는 블로그를 참고해 주시고 제가 부족했던 부분만 가져왔습니다.

def solution(storey):
    answer = 0

    while storey:
        remainder = storey % 10
        ...
        storey //= 10

    return answer

 

이런 식으로 가장 뒷자리(1의 자리)를 소거하면서 진행하는 방법을 사용합니다. (2554 > 255 > 25 > 2)

 

 

오늘의 학습 키워드:  DP

문제: 멀리 뛰기

https://school.programmers.co.kr/learn/courses/30/lessons/12914

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

풀이

이번에도 DP문제가 나왔습니다.

칸에 도달하는 방법은 두 가지 방법이 있습니다.

1. 한 칸 뛰기

2. 두칸 뛰기

 

따라서 따져보아야할 가짓수는 한 칸 전의 값, 두 칸 전의 값입니다..

도달 가능한 수의 합은 앞의 두칸의 합과 동일하게 됩니다. (피보나치..?)

코드로 구현해보면 아래와 같습니다.

def solution(n):
    jump = [0 for _ in range(n)]
    
    for i in range(n):
        if i == 0:
            jump[i] = 1
        elif i == 1:
            jump[i] = 2
        else:
            jump[i] = jump[i-1]+jump[i-2]
    
    return jump[-1]%1234567

+ Recent posts