320x100

전체 글 435

30대의 선택이 인생을 바꾼다

1. 세상이 30대에게 바라는 단 하나의 것은? chapter 1. 당신은 얼마나 ‘좋은 얼굴’을 가지고 있는가? 30대에 도전하지 않으면 안 될 일들 1 _ 자서전을 써라 chapter 2. 도전하지 않는 30대에게 미래는 없다 30대에 도전하지 않으면 안 될 일들 2 _ 사업계획서를 만들어라 chapter 3. 나의 시장가치는 얼마나 될까? 30대에 도전하지 않으면 안 될 일들 3 _ 삶을 Level-Up하라 chapter 4. 당신은 유일무이한 인재인가 30대에 도전하지 않으면 안 될 일들 4 _ 미래에 대비한 특별한 소질을 계발하라 2. 새로운 삶으로 뛰어들 준비가 되었는가? chapter 5. 당신이 그려온 궤적이 곧 당신이다 30대에 도전하지 않으면 안 될 일들 5 _ 롤모델을 만나보라 cha..

도서/그외 2022.04.30

DP

Dynamic Programming의 약자로 하나의 문제를 한 번만 푸는게 핵심이다. 문제를 작은 문제로 쪼개어 풀고, 푼 결과를 기억해 결과의 합으로 본래의 문제의 해를 구하는 방식이다. 대표적인 예로 피보나치 수열이 있다. f(x) = f(x-1) + f(x-2) 예제문제. 이동 비용이 있는 계단에서 n번째 계단까지 가기위한 최소 비용 구하기 #include #include using namespace std; int minCostStairs(vector& vec, int target) { int maxCoins = 999999; vector dp(target + 1, 0); // 계단을 한번에 1칸 또는 2칸 올라갈 수 있다. dp[0] = 0; dp[1] = 0; for (int i = 2; i ..

2021 카카오 채용연계형 인턴십거리두기 확인하기

풀 때 신경쓸 부분은 다음 2가지 정도 인 것 같다. 1. 맨하탄 거리 맨하탄 거리는 피타고라스의 정리처럼 직선 거리가 아닌 실제 유효한 이동거리(건물을 뚫고 갈 수 없으니 실제 도보의 길이)임을 기억 2. 파티션의 위치 사람 사이에 파티션이 있는지 체크해야 하는데, 직선일 때(X축, Y축)와 대각선으로 있을 때만 구분해서 체크 #include #include using namespace std; // 맨하탄 거리 구하기 int getManhattanDistance(int r1, int c1, int r2, int c2) { return std::abs(r1 - r2) + std::abs(c1 - c2); } // 문자열 잘라서 테이블 만들기랑 P의 좌표만 기억해두기 void parse(const vec..

2020 KAKAO BLIND RECRUITMENT문자열 압축

너무 오랜만에 하려고 하니까 귀찮아서 대충 짠거같다. 풀기 급급해서 깔끔하게 짜는건 실패한거 같다. 요지는 1글자부터 length/2 글자까지 반복해가면서 줄여보고 가장 짧은 글자 수를 반환하면 된다. 늘 풀면서 느끼는건 뭔가 대단한 알고리즘이 있을거 같지만 대부분은 그냥 노가다 코드 짜는 것 뿐인것같다. #include #include using namespace std; int check(string& str, int size) { string temp; string temp1; string temp2; int count = 1; // 생각해보니 매번 자르지말고 size별로 미리 텍스트를 잘라서 vector에 담아놓고 써도 될 것 같다. for (int i = 0; i < str.length() - ..

메타휴리스틱스 - [126화 1교시]

메타휴리스틱스(metaheuristics)는 전역최적화를 위한 근사해법으로 1960년대 중반부터 여러 기법이 개발되었습니다. metaheuristic이라는 용어는 Glover(1986)에 의해 처음 사용이 되었습니다. 접두어 'meta'는 그리스어 'higher level' 또는 'beyond'라는 의미이고, 'heuristic'은 'to find', 'to know', 'to discover'라는 의미를 가지고 있습니다. 메타휴리스틱은 '상위 수준의 휴리스틱'이라는 뜻입니다. 메타휴리스틱은 '특정 휴리스틱 구축을 위한 일반적인 구조와 전략을 안내하는 범용 알고리즘 틀(framework)'을 말합니다. 따라서 메타 휴리스틱은 특정 휴리스틱을 개발 할 때 알고리즘의 기본 틀로 사용할 수 있는 상위 휴리스틱..

정규분포 특징 - [126회 1교시]

정규분포(Normal distribution)는 연속확률분포(즉, 정수 뿐만아니라 연속된 값을 취할 수 있는 분포)의 하나로, 가우스 분포(Gaussian distribution)라고도 한다. 정규분포는 일상적인 자료에서 흔히 볼 수 있는 분포이다. 가령 전체 부서 남자 직원의 키를 조사했을 때 보통 평균값 주변에 많이 분포되어 있고, 평균 값에서 멀어질수록 더 적은 수가 분포되어 있는 것을 생각해보면 된다. 특히 모집단의 수가 클 경우 정규분포를 근사적으로 따를 것으로 가정하고 통계적 분석을 할 수 있다. ​ 그러나 이 외에도 정규분포가 통계학에서 아주 유용하게 사용되는 이유는 따로 있다. 중심극한정리(Central limit theorem, CLT)가 바로 그 것인데, 간단히 설명하자면 모든 표본 평..

사내 스터디 1주차

구성원이 모두 사용해 본적 없음. 매주 과제를 정하고 다음 모임까지 완성해보는 방법으로 진행. 과제: Go를 사용해 Json 형식의 RestAPI 제작해보기 진행: 설치부터 C++과 다르다. Go를 별도로 설치해야하고, VSCode에서 go extension를 설치해줘야 하고, 환경 변수를 잡아줘야 한다. (GOROOT, GOPATH등. 1.7 버전 이후로는 뭐 없어졌다고 하는데 확인 필요) restapi를 사용하려면 net/http 패키지를, json을 사용하려면 encoded/json 패키지를 사용해야 한다. 임의의 사용자 struct를 json으로 마샬링하기 위해선 key로 사용할 수 있는게 무조건 string이여야 한다. uid를 정수로 했다가 이거 때문에 고생함. package main impo..

프로그래밍/Go 2022.02.23
320x100