Script / CSS

G1sUtil.js

G1sBlogger.js

G1sNavigationList.js

G1sCode

G1sTagList

2012년 6월 30일 토요일

안경을 맞추다


6개월 만에 쓰는 안경.
오랜만에 쓰는 안경에 선명하게 다가오는 세상.

문득 그동안 세상을 뿌옇게만 바라보고 있었던 것은 아닌가...
하는 생각이 든다.

보이는 만큼만 보고, 안보이면 안보이는 데로...
선명하게. 제대로 보려는 생각이나 노력은 없이.

귀찮음. 무관심....

선명하게 다가오는 먼산의 뚜렷한만큼
주변의 것들에도 좀 더 관심을 기울여야 할 듯...

2012년 6월 6일 수요일

[Blogspot] Label DropDown Menu 만들기

Blogspot 에서 제공하는 Label Widget를 DropDown Menu 로 바꿔주는 방법이 있네요.

출처 : http://www.bloggersentral.com/2010/05/create-dropdown-menu-for-labels-widget.html

출처에도 보시면 잘 설명되어 있지만 다시 한번 정리해 봅니다.

우선 해당 기능을 구현하기 전에 Blogspot에 Label Widget를 설치하셔야 합니다.
설치 안하신 분들은 '레이아웃 > 가젯추가 > 태그' 를 통해 Label Widget를 설치해 주시면 됩니다.
(old UI : 디자인 > 가젯추가 > 태그)

이후부터는 아래 순서대로 진행해 주시면 됩니다.

1. 템플릿 > HTML 편집 > 계속 으로 들어갑니다. (old UI : 디자인 > HTML 편집)
2. 템플릿의 내용을 백업해 둡니다. (나중에 잘 못 된 것이 있으면 복원이 필요할 수 있습니다.)
3. '가젯코드 펼쳐서 보여주기' 를 체크하지 않고 진행합니다.
4. Label Widget 를 찾습니다. 아래 코드를 찾으시면 됩니다.
id와 title은 다를 수 있습니다.(title 가 위젯 생성 시 설정한 제목 입니다.)
<b:widget id='Label1' locked='false' title='Labels' type='Label'/>
5. 위의 내용을 아래와 같이 수정합니다.
<b:widget id='Label1' locked='false' title='Labels' type='Label'>
<b:includable id='main'>
<b:if cond='data:title'>
<h2><data:title/></h2>
</b:if>
<div class='widget-content'>
<select onchange='location=this.options[this.selectedIndex].value;' style='width:100%'>
<option>Click to choose a label</option>
<b:loop values='data:labels' var='label'>
<option expr:value='data:label.url'><data:label.name/>
(<data:label.count/>)
</option>
</b:loop>
</select>
<b:include name='quickedit'/>
</div>
</b:includable>
</b:widget>
  • 넓이를 수정하고 싶으시면 7번째 줄에 'width:100%'의 %값 혹은 pixel(px)값으로 수정해 주시면 됩니다.
  • DropDown Menu 에 들어가는 글자는 8번째 줄 'Click to choose a label' 의 내용을 수정해 주시면 됩니다.
  • 11번째 줄은 각 Label 의 숫자를 보여줍니다. 해당 수를 보고싶지 않으신 분은 해당 내용을 지워주시면 됩니다.

6. 템플릿 저장 을 통해 내용을 저장합니다.

즐거운 블로깅 되세요 ^^

2012년 6월 2일 토요일

[Project Euler] 53. 1 ≤ n ≤ 100 일때 nCr의 값이 1백만을 넘는 경우는 모두 몇 번?

53. 1 ≤ n ≤ 100 일때 nCr의 값이 1백만을 넘는 경우는 모두 몇 번?
1,2,3,4,5 다섯 숫자 중에서 세 개를 고르는 것에는 다음과 같은 10가지 경우가 있습니다.

123, 124, 125, 134, 135, 145, 234, 235, 245, 345

조합론이라는 분야에서는 이것을 5C3 = 10 이라고 표시하며, 일반적인 식은 아래와 같습니다.

nCr =
n!
r!(n−r)!
, 단 r ≤ n 이고, n! = n×(n−1)×...×3×2×1 이며 0! = 1.

이 값은 n = 23 에 이르러서야 23C10 = 1144066 으로 처음 1백만을 넘게 됩니다.

1 ≤ n ≤ 100 일때 nCr의 값이 1백만을 넘는 경우는 모두 몇 번입니까? (단, 중복된 값은 각각 계산합니다)
Click
nCr = nCn-r 이고,
r < n/2 일 때, r1>r2 이면 nCr1 > nCr2 이다.
즉 100만이 넘는 nCr2를 구하면 n/2 보다 작고 r2보다 큰 r1 에 대하여 nCr1 은 100만을 넘으며, nCn-r1 도 역시 100만을 넘는다.

nCr = n!/(r!(n-r)!) 을 풀면.
nCr = n/1 * (n-1)/2 * (n-2)/3 * ....... * (n-r+1)/r 이 된다.
i를 1부터 100까지 증가해 가며,
각 i 마다 i/2 까지 (i-(j-1))/j 를 곱해가며 해당 값이 100만을 넘으면
i/2 - j 의 2배의 값을 더해준다.
<script language="Javascript" type="text/javascript">
function p053(){
    var r = 0;
    for(var i=1; i<=100; i++){
        var temp=1
        for(var j=1; j <= i/2 && temp < 1000000; j++)
            temp *= (i-(j-1))/j;
        if(temp >= 1000000)
            r += ((i+1)/2-(j-1))*2;
    }
    
    alert(r);
}
</script>
time : 0.001(s)


오랜만에 문제를 푸네요.
취직을 하여 바빠지니 아무래도 하루 한문제는 이제 힘들 듯 하고..
1주일에 한문제로 하향 조정해야 할 듯합니다.