Growth Hoon

20230817_TIL_프로그래머스 Lv0 완료/유튜브 강의 수강 본문

TIL_Today I Learned

20230817_TIL_프로그래머스 Lv0 완료/유튜브 강의 수강

sayhoon 2023. 8. 17. 23:54

오늘의 한줄 TIL : 일단 프로그래머스 Level0 끝냈다 !


프로그래머스 

못풀고 찾아본 문제 1 - 겹치는 선분의 길이

 

프로그래머스

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

programmers.co.kr

문제를 보고 이해는 했지만 어떻게 코딩을 해야할 지 감이 안왔었다..

그래서 참조하여 찾아본 코드

def solution(lines):
    answer = 0
    count = [0 for _ in range(200)] # -100 ~ 100 까지의 범위에서 해당 점에 선분이 그어진 횟수
    for line in lines:
        for i in range(line[0], line[1]): 
            count[i + 100] += 1
    answer += count.count(2) # 두 개 이상 겹친 점
    answer += count.count(3) # 세 개 이상 겹친 점
    return answer

 

못풀고 찾아본 문제 2 - 정수를 나선형으로 배치하기

 

프로그래머스

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

programmers.co.kr

해당 문제는 지정된 범위가 넘어가면 아래, 왼쪽, 위, 오른쪽 , 다시 아래 이렇게 생각을 했는데

구현을 못해서 찾아보았다.

def solution(n):
    answer = [[None for j in range(n)] for i in range(n)]
    move = [[0, 1], [1, 0], [0, -1], [-1, 0]]
    x, y, m = 0, 0, 0
    for i in range(1, n**2 + 1):
        answer[y][x] = i
        if y + move[m][0] >= n or x + move[m][1] >= n or answer[y + move[m][0]][x + move[m][1]]:
            m = (m + 1) % len(move)
        y, x = y + move[m][0], x + move[m][1]
    return answer

유튜브 머신러닝 강의 수강

링크 : https://www.youtube.com/watch?v=oyzIT1g1Z3U&t=7749s 

드디어 수학 부분 수강 완료
Loss Function 중 하나인 MSE에 대해서 배웠고 MSE를 대상으로 단순 선형회귀의 optimal (최적의) 하는 방법인

최소 제곱법(최소 자승법 - Least sqare method)를 배웠다.

해당 내용에 대해서는 코드와 함께 나중에 정리해보자


나중에 다시 살펴봐야 할 목록

1. 프로그래머스 Level0 스스로 못풀었던 문제를 다시 살펴보기

2. 머신러닝 강의에서 수학 부분 노트에 펼쳐진 키워드 기록들로 정리해보기

 

reference site

1. 겹치는 선분의 길이 해결법 블로그

2. 정수를 나선형으로 배치하기 해결법 블로그

 

다 알아야 한다는 부담으로 공부하지 말자 !