본문 바로가기

프로그래밍 기술 노트

(88)
[PS/Clojure] HackerRand - Algorithms - Absolute Permutation 아.. 뭔가 더 짤수있을꺼같은데.. Stream 규칙을 어떻게 세워야 할지 모르겠다. 필자가 적용한 알고리즘의 기초는 k가 2인경우 : 2 2 -2 -2 2 2 -2 -2 .... k가 3인경우 : 3 3 3 -3 -3 -3 3 3 3 -3 -3 -3 .. 이렇게 스트림에 더한것이 정상적인지 확인. www.hackerrank.com/challenges/absolute-permutation/problem Absolute Permutation | HackerRank Find lexicographically smallest absolute permutation. www.hackerrank.com github.com/Lee-WonJun/ProblemSolving/blob/master/Brute%20Force/A..
[Monad] 내멋대로 Monad 이해하기 - Bind (FlatMap), Monad C#이나 JAVA 에서 보통 함수를 어떻게 만들까? 예를 들어서 number를 받아서 User를 만드는 함수라고 하고한다면... public class User { public int id { get; set; } } public User CreateUser (int id) { return new User { id = id }; } 뭐 이런식으로 만들지 않을까? 그런데 여기서 User Id 가 0인 경우 관리자기 때문에 만들지 못한게 한다면? public class User { public int id { get; set; } } public User CreateUser (int id) { if (id == 0) { return null; } return new User { id = id }; } 뭐 간..
[Monad] 내멋대로 Monad 이해하기 - Map, Return, Apply FP 에서는 주로 예외처리를 Option 혹은 Maybe 라는 이름을 가진 타입을 사용한다. Null 처리 같은것도 Option으로 대체 되는데 예를 들자면 다음과 같다. MyClass nc = new MyClass(); //.... if (nc != null) { //... } else { //... } C#의 경우 위와 같이 Null로 확인한다면 let nt = Option.None //... if nt.IsSome then //... else //... F# 은 위와같이 Option을 통하여 None 인지 Some 인지 확인한다. Null이 천만불짜리 실수다~,Option 타입이 왜좋다~ 같은건 둘째 치고 단순위 위와같이 매번 if문 으로 Some 인지 None 인지 구분하여 사용한다면 Option..
[PS/Clojure] HackerRand - Algorithms - Forming a Magic Square Implementation 항목의 Magic Square, BruteForce 로 풀었다. 처음에는 time out나서 BruteForce 가 아닌가 했는데.. filter 를 안걸어주었었다. 모든 순열을 구하는데 사용한 permutations 코드는 그냥 인터넷에서 긁어왔다 ;; C++ 은 next_permutation이 STL 에 있는데 clojure에 있는 clojure.math.combinatorics 가 HackerRank에서 지원을 안해준다 크흠.. Forming a Magic Square | HackerRank Find the minimum cost of converting a 3 by 3 matrix into a magic square. www.hackerrank.com Lee-WonJun..
[PS/Clojure] HackerRand - Algorithms - Sherlock and Cost DP 를 사용하는 Sherlock and Cost 난 못풀었다ㅜ 코드는 설명을 듣고 Clojure로 구현한 코드. Sherlock and Cost | HackerRank Given array A, B and relation between them find the cost of array A. www.hackerrank.com Lee-WonJun/ProblemSolving 알고리즘 세미나 . Contribute to Lee-WonJun/ProblemSolving development by creating an account on GitHub. github.com (defn abs [x] (max (- x) x)) (defn fun ([v] (fun v 0 0)) ( [v dp1 dp2] (if (= (co..
[PS/Clojure] HackerRand - Algorithms - Equal 클로저를 아주 잘 지원해주는 몇안되는 알고리즘 사이트 HackerRank 지인과 함께 알고리즘 공부중이다. 각자 C++/Python/Clojure 로 문제 풀이중. 첫문제는 DP 를 사용하는 Equal 알고리즘은 약하기 때문에... 친구의 힌트를 듣고 풀었다. Equal | HackerRank Calculate minimum number of such operations needed to ensure that every colleague has the same number of chocolates. www.hackerrank.com 내풀이는 다음과 같다. Lee-WonJun/ProblemSolving 알고리즘 세미나 . Contribute to Lee-WonJun/ProblemSolving develop..
개발 커뮤니티 Dev.to dev.to/ DEV Community Where programmers share ideas and help each other grow—A constructive and inclusive social network. dev.to 포스팅 작성하고.. 토론하고.. 소셜처럼 Feed 확인할수있는 사이트 미디움 같은거랑 비슷하기도 한데 심심할때 Feed 올라오는것들을 보면서 시간때우기 좋다. 아직 한글 게시글이나 지원이 부족한게 흠
Excel, Word, PowerPoint 파싱하기 예전 포맷은 모르겠는데 오피스의 각 문서들 (xlsx, docx pptx 등) 은 OpenXML 포맷을 따른다. ko.wikipedia.org/wiki/%EC%98%A4%ED%94%BC%EC%8A%A4_%EC%98%A4%ED%94%88_XML 오피스 오픈 XML - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. ko.wikipedia.org XML 형식으로 이루어져있다는것은 알고있었는데 문서 확장자를 *.txt 로 바꾸고 열어봐도 XML 형식으로 되어있지는 않다... zip 확장자로 변환하면 내용을 확인할수있다. 뭐 굳이 직접 파싱하지 않아도 C#에서는 OpenXML 라이브러리를 Nuget 에서 설치할수있다. 다만 XML 구조를 문서만 보면 파악하기 힘들기 때문에. (시트, 워크북파트..