Dev 43

[Hackerrank] Sherlock and Cost

한동안 못 보다가 다시 틈 날 때마다 알고리즘 문제를 하나씩 보고 있다. 전에는 백준에 주로 갔었는데 요샌 귀찮아서 Hackerrank에서 하나씩. 그리고 이제부터 푸는 문제는 차차 정리해서 올리기로! 예전에 풀었던 문제들도 언젠가... 오늘은 Sherlock and Cost 문제를 풀었고, Dynamic Programming 카테고리에 있는 문제다. 전체 코드는 가장 아래에 있다. 내가 생각한 식은 대략 아래와 같다. $$ \begin{cases} S[i][1선택] = max(S[i - 1][1선택], S[i - 1][B_i선택] + (B[i - 1] - 1)) \newline S[i][B_i선택] = max(S[i - 1][1선택] + (B[i] - 1), S[i - 1][B_i선택] + abs(B[..

Dev/Algorithm 2019.06.26

Scalatest - fixtures에 System-Rules 결합하기

JUnit Rules - System-Rules 요즘 Scala test code를 열심히 작성하는 중이다. (블로그에 이 글을 작성하는 시점에선 어언... 4개월 쯤 전?) 당연히 ScalaTest 사이트를 뻔질나게 드나드는 중인데, 본래 Scala와도 그다지 친하지 않았는데 ScalaTest는 당연히 낯선 친구라서 어려워 하고 있다. 오늘 회사에서 누군가가 남겨놓고 떠난 코드에 얄팍하게나마 테스트 코드를 작성하던 중에 코드 내에 System.getenv를 호출하는 부분이 있다는 걸 알았고, 테스트만을 위해 로컬에 환경변수를 설정하기엔 몹시 애매한 상황이어서 아니 이걸 어떻게 하지??? 하다가 JUnit rules형태의 System-Rules라는 library가 있다는 걸 알게 되었다. 들어가보면 알겠..

Dev/etc 2017.07.18

[Java] Upper bounded wildcards

Upper Bounded Wildcards 변수에 대한 제한을 좀 느슨하게 하기 위해 upper bounded wildcard를 사용할 수 있다. 예를 들어, List, List, 그리고 List를 다루는 메소드를 작성하고 싶다고 해보자; 이건 upper bounded wildcard를 이용해 작성할 수 있다. upper-bounded wildcard를 선언하기 위해서는 wildcard character (‘?‘)를 사용하고, 그 다음 extends keyword를, 마지막으로 upper bound가 뒤따른다. 주의할 것은 이 문맥에서 extends는 일반적인 느낌의 “extends”(class에서 사용되는)와 “implements”(interface에서 사용되는) 둘 다 의미하는 것으로 사용한다. Nu..

Dev/Java 2016.12.28

[CentOS] rpm 을 이용해 gcc 수동 설치

# rpm -Uvh gcc-c++ # rpm -Uvh gcc # rpm -Uvh cpp # rpm -Uvh libmpc # rpm -Uvh mpfr # rpm -Uvh glibc-devel # rpm -Uvh glibc-headers # rpm -Uvh kernel-headers # rpm -Uvh libgomp # rpm -Uvh libstdc++-devel 회사에서 yum이 안돼서.... rpm 파일을 하나씩 받아서 수동으로 설치했다.각각 바로 하위에 있는 아이들이 dependencies. 따라서 트리 구조 오른쪽 끝부터 차례대로 설치해야 한다.일부러 버전 정보는 뺐다. RPM 받을 수 있는 곳http://rpm.pbone.net/

Dev/etc 2016.08.24

Tistory블로그에 수식 입력하는 법

요즘 Coursera에서 Machine Learning 강의를 듣고 있다. 보통 강의를 들으면서 강의 내용을 대강 내가 이해할 수 있는 정도로 메모를 해두는 편이고, 이왕이면 정리해서 블로그에 올리는 게 낫겠다 싶어 컴퓨터로 작성하는 중인데 생각보다 수식이 많다. 그럼에도 수식 작성이 쉽지 않다. 고작 한주차 듣고 이제 2주째 접어드는 데 이런 어려움이 나타났다. 그래서 tistory 수식 작성 이라고 검색하니 예상외로 꽤 많은 글이 나왔다. 그래서 블로그에 적용해보았다. 주로 MathJax를 이용한 방법이었는데, 알고보니 이게 LaTeX문법과 거의 같다고 한다. 논문 쓸 때 많이 사용한다는 이야기만 들었지 한 번도 써보진 않았는데, 이 참에 배워보기로 결심. 적용하는 방법은 꽤 쉽다. tistory 블..

Dev/etc 2016.07.20

[Coursera] Machine Learning Week 1

Introduction Welcome 수많은 인공 지능 연구자들의 목표는 인간의 뇌를 흉내내서 만들어 인간의 뇌와 비슷하게 학습하게 만드는 것 알고리즘을 사용할 것임 -> 어떻게 유도되는지는 알 필요 없음 Introduction Welcome Machine Learning Grew out of work in AI New capability for computers Machine Learning Examples Database mining(데이터베이스 수집) Large datasets from growth of automation/web. E.g. Web click data, medical records, biology, engineering Applications can't program by hand ..

Ubuntu에서 ssl certificate verify failed 에러시 설정 (인증서 등록)

$ pip3 install django Collecting django Could not find a version that satisfies the requirement django (from versions: ) No matching distribution found for django 회사에서 Ubuntu 16.04에 pip를 이용해 Django를 설치하려고 했는데 자꾸 위와 같은 에러 메시지가 나오고 설치가 되지 않았다. 열심히 구글링 했더니 저 메시지는 인터넷에 접근을 못 하는 상태라는 글을 발견해서 또 열심히 이것저것 다른 명령어를 쳐보면서 구글링. 프록시도 다 세팅되어 있는데 대체 왜일까... 하다가. 조금 다른 명령어를 쳤더니 Ssl certificate_verify_failed 라는 에러..

Dev/etc 2016.07.15

React Diff Algorithm

http://calendar.perfplanet.com/2013/diff/ 글을 보고 번역 옮기기 영어 공부 할 셈 시작했는데 중간에 내팽개쳐 놨다가 이제서야 겨우 ㅜㅜ 영어 공부해야 겠다는 사실과 번역엔 영어+한국어 실력이 필요하다는 사실만 깨달음 오역이 엄청 많을 것이므로(뒤로 갈수록 더더욱), 혹시나 보시는 분이 있다면 적당히 그냥 대충 보시길... React 비교 알고리즘 React는 Facebook이 개발한 UI를 구성하기 위한 Javascript library로 밑바닥부터 철저하게 성능을 염두에 두고 디자인되었다. 이 기사에서는 React에서 어떻게 diff 알고리즘을 수행하고 컴포넌트를 렌더링하는지 이야기할 것이며, 그에 따라 당신은 당신의 앱을 최적화할 수 있을 것이다. Diff Algor..

Dev/etc 2016.04.21

Zookeeper & Kafka cmd에서 실행 시

회사에서 Kafka를 사용해볼 일이 생겨서 설치를 했다. 윈도우 설치 방법도 쉽게 검색할 수 있었고, 제대로 설치했는데 cmd에서 실행하려고만 하면실행시 지정된 경로를 찾을 수 없습니다.라고만 출력됨. 다른 에러도 아니고 그냥 저것만. 그래서 이리 저리 검색도 하고 삽질 좀 하다가 혹시나 해서 kafka-run-class.bat 파일을 까봤다.쑥 내려보니 JAVA_HOME 을 세팅하는 부분이 있음예전에 컴퓨터에 java설치하고 환경변수 설정하는 중에 귀찮아서 그냥 bin까지 JAVA_HOME에 넣어버렸다는 사실이 떠오름ㅜㅜ정석대로 JAVA_HOME경로를 home경로까지만 지정하니까 Kafka가 아주 잘 뜸 역시 조금 귀찮다고 이상한 짓을 하면 이런 듣도 보도 못한 상황에 직면하게 된다.... ㅜㅜ

Dev/etc 2016.04.21