Loading...
2021. 11. 23. 00:49

탐욕법 활용 기초편

1. 문제 https://programmers.co.kr/learn/courses/30/lessons/12982 코딩테스트 연습 - 예산 S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다. 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄 수는 programmers.co.kr S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다. 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄 수는 없습니다. 그래서 최대한 많은 부서의 물품을 구매해 줄 수 있도록 하려고 합니다 물품을 구매해 줄 때는 각 부서가 신청한 금액만큼을 모두 지원해 줘야 합니다. 예를 들어 ..

2021. 11. 22. 23:17

가장 좋은 loss function은?

1. Huber loss MSE와 MAE가 모두 바람직하지 않은 경우도 많다. 만약 90%의 데이터가 매우 큰 값 예를 들어 200, 10% 데이터가 0~10정도 값을 가진다고 하면 MSE는 10%의 작은 값을 가지는 0~10에 맞출려고 하고 MAE는 90%의 데이터가 있는 200에 맞출려고 한다. MSE는 식 자체가 평균을 구하는 것에 목적이 있고 MAE는 중앙값을 구하는 것에 목적이 있다. 수학적으로 MSE를 가장 최소화하는 하나의 예측치는 평균이고, MAE를 가장 최소화하는 하나의 예측치는 중앙값이다. 이런 경우 적합한 loss function은 huber loss라고 있다. huber loss는 MSE와 MAE를 적절하게 합친 것이다. 그래서 MSE에 비해 outlier에 덜 민감하고 MAE에 비..

시간 다루기

1. 문제 이벤트 시작 날짜와 이벤트가 끝나는 날짜, 고객의 접속 기록이 주어진다. 모든 날짜는 mm/dd 형태로 주어지는데 이벤트 시작 날짜는 mm/dd day 형태로 주어진다. day는 'MON','TUE','WED','THU','FRI','SAT','SUN' 중 하나로 주어진다. 고객의 접속 기록은 시작 날짜와 끝나는 날짜 사이에서 접속한 날짜를 리스트 형태로 주어진다. 2월은 항상 28일로 끝난다고 가정한다. 날짜는 01/01부터 12/31까지 주어지고 시작 날짜가 끝나는 날짜보다 늦는다던지 형식에 맞지 않는 경우는 주어지지 않는다 이 때 고객이 평일에 연속해서 접속한 기록의 최대 일수를 구한다면? 예를 들어 24일이 목요일 일때, 24,25,26,28,29,31 접속했다고 가정하자. 일요일인 2..

2021. 11. 22. 02:20

체스판에서 정사각형의 개수

1. 문제 n개의 점이 일정한 간격으로 각 줄마다 n개의 줄이 존재하는 n*n 체스판이 있다고 하자. n*n 체스판에서 서로 다른 네개의 점을 이어 만든 정사각형의 개수는 몇개일까? 선분을 이을 때 선분 중간에 존재하는 점은 개수로 세지 않는다. 예를 들어 n=3이면 6개 존재하고 n=4이면 20개 존재한다. n은 2 이상의 자연수 2. 풀이 이런 문제가 나오면 규칙이 있겠구나 이렇게 생각하고 규칙을 찾으면 된다 프로그래밍을 해서 정사각형을 일일이 세도록 만들수는 없을거니까 근데 사실 규칙을 찾을려면 정사각형의 개수를 정확하게 세야하는데 그것이 절대 쉬운건 아니다 규칙을 찾겠다는 생각부터 한 것이 분명 한단계 발전한거 2가지로 나눠 생각할 수 있다 빨간색으로 된 격자형 정사각형이랑 파란색으로 된 기울어진..

2021. 11. 22. 01:00

MSE loss 와 MAE loss의 비교

1. MSE loss(mean square error) regression 문제에서 사용하는 가장 대표적인 loss function L2 norm을 사용한다고 해서 L2 loss라고도 부른다. true value와 predicted value의 제곱합의 평균이다. $$MSE= {\sum _{i=1} ^{n} \frac{(y _{i} -y _{i}^{p} ) ^{2}}{n}}$$ root를 씌운 RMSE(Root Mean squared error)를 종종 쓰기도 한다. $$RMSE= \sqrt [2]{\sum _{i=1} ^{n} \frac{(y _{i} -y _{i}^{p} ) ^{2}}{n}}$$ 풀기 쉽다는 이유에서 가장 많이 쓰인다. 미분을 하기 쉬워서, 최적화하기가 쉬워서 자주 쓰인다. 그러나 o..

2021. 11. 21. 01:49

문자열 다룰 때 필수적으로 갖춰야할 스킬들

1. 문제 https://programmers.co.kr/learn/courses/30/lessons/72410 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 programmers.co.kr 카카오에 입사한 신입 개발자 네오는 “카카오계정개발팀”에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. “네오”에게 주어진 첫 업무는 새로 가입하는 유저들이 카카오 아이디 규칙에 맞지 않는 아이디를 입력했을 때, 입력된 아이디와 유사하면서 규칙에 맞는 아이디를 추천해주는 프로그램을 개발하는 것입니다...