2015년 7월 13일 월요일
2015년 7월 9일 목요일
2015년 6월 23일 화요일
2015년 6월 17일 수요일
2015년 6월 15일 월요일
Internet Explorer 버전 별 CSS 별도 적용 | CSS Style Depending on Internet Exploror Version
<style>
// common
</style>
<style>
@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {
// gte IE 10 Here
}
</style>
<!--[if IE 9]>
<style>
// IE 9 Here
</style>
<![endif]-->
<!--[if lte IE 8]>
<style>
// lte IE 8 Here
</style>
<![endif]-->
2015년 6월 8일 월요일
알고리즘 피보나치 수열
피보나치 수열은 알고리즘에서 자주 등장하는 소재다.
일종의 숫자의 집합이라고 볼 수 있는데,
0, 1, 1, 2, 3, 5, 8, …
이와 같이 0, 1로 시작하며, 세번째 원소부터는
마지막 두 숫자를 더한 값이 되며, 이 조합은 무한히 이어진다.
고로, 8 뒤의 숫자는 5 + 8 = 13 이 된다.
그 다음 원소는 8 + 13 = 21 이 될 것이다.
알고리즘 문제에서 어떤 숫자가 피보나치 수열에 속하는지 아닌지
판별하라면 어떻게 풀어야 할까?
나는 피보나치 수열을 배열로 만든 후,
해당 숫자가 그 배열에 속해 있는지 여부로 판단하는 알고리즘을 짰다.
https://www.hackerrank.com/rest/contests/master/challenges/is-fibo/hackers/lamiru/download_solution
그런데 다른 답안을 보니 상당수가
https://www.hackerrank.com/rest/contests/codesprint5/challenges/is-fibo/hackers/adhikari_suraj/download_solution
이런 식으로 문제를 풀었다.
즉, 해당 숫자를 N이라고 할 때,
5*N*N+4이거나 5*N*N+4이 자연수의 제곱이 되면 된다는 것인데,
왜일까…?
영어판 위키백과에 언급이 되어 있긴 한데….
http://en.wikipedia.org/wiki/Fibonacci_number#Recognizing_Fibonacci_numbers
일종의 숫자의 집합이라고 볼 수 있는데,
0, 1, 1, 2, 3, 5, 8, …
이와 같이 0, 1로 시작하며, 세번째 원소부터는
마지막 두 숫자를 더한 값이 되며, 이 조합은 무한히 이어진다.
고로, 8 뒤의 숫자는 5 + 8 = 13 이 된다.
그 다음 원소는 8 + 13 = 21 이 될 것이다.
알고리즘 문제에서 어떤 숫자가 피보나치 수열에 속하는지 아닌지
판별하라면 어떻게 풀어야 할까?
나는 피보나치 수열을 배열로 만든 후,
해당 숫자가 그 배열에 속해 있는지 여부로 판단하는 알고리즘을 짰다.
https://www.hackerrank.com/rest/contests/master/challenges/is-fibo/hackers/lamiru/download_solution
그런데 다른 답안을 보니 상당수가
https://www.hackerrank.com/rest/contests/codesprint5/challenges/is-fibo/hackers/adhikari_suraj/download_solution
이런 식으로 문제를 풀었다.
즉, 해당 숫자를 N이라고 할 때,
5*N*N+4이거나 5*N*N+4이 자연수의 제곱이 되면 된다는 것인데,
왜일까…?
영어판 위키백과에 언급이 되어 있긴 한데….
http://en.wikipedia.org/wiki/Fibonacci_number#Recognizing_Fibonacci_numbers
2015년 6월 7일 일요일
2015년 6월 4일 목요일
HackerRank 온라인 코딩 퀴즈 | HackerRank Online coding quiz
각 언어 및 알고리즘, 자료구조에 대한 코딩 퀴즈를 풀 수 있는 사이트다.
특히 알고리즘, 자료구조는 문제를 계속 풀다보면
알고리즘, 자료구조를 제대로 배우지 않은 사람이라도
실력이 향상될 수 있도록 코스가 잘 짜여져 있는 것 같다.
알고리즘, 자료구조는 같은 문제를 어느 언어로 풀어도 상관 없다.
C, C++, C#, Java, Python, Ruby, Perl, JavaScript, PHP 등 주요 언어를 포함해,
무려 30가지 이상의 언어 지원….
다른 사람의 답도 볼 수 있다.
같은 문제에 대해서 사용자 국가별, 프로그래밍 언어별 답안 검색도 가능하다.
GibHub처럼 자신의 1년치 제출 이력도 확인할 수도 있다.
현재 Python 3로 알고리즘을 계속 풀고 있는데
문제를 푸는 것 자체는 어렵지 않지만,
답을 제출하고 다른 사람들의 답과 비교해 보니
역시 훨씬 더 잘 짜여진 코드들이 많이 있다.
책을 통해 공부하는 것보다 훨씬 재미도 있고 도움이 되는 듯.
2015년 6월 1일 월요일
피드 구독하기:
글 (Atom)