2016년 9월 12일 월요일
문제적남자 73화:수학 - 코딩으로 풀어보기
문제적남자 73화 - 수학 풀이
수능 D-100 특집으로 이런 문제가 나왔다.
다음과 같은 몇 가지 규칙을 발견하고 브루트 포스로 풀어보기로 했다.
1. 열 번째 숫자는 0 이다. (10의 배수는 0으로 끝나기 때문)
2. 다섯 번째 숫자는 5 이다. (5의 배수는 0, 5로 끝난다. 0은 열 번째 숫자이므로 5)
3. 짝수 번째 숫자는 2, 4, 6, 8 중 하나이다.
4. 홀수 번째 숫자는 1, 2, 3, 4, 6, 7, 8, 9 중 하나이다.
소스: https://jsfiddle.net/J00nas/yrmen84L/
javascript로 적어봤는데, 비동기식이라 그런지 제대로 걸러지지가 않는다. (그리고 브라우저의 자바스크립트 버전별로 다르게 보일 수 있다.) 그래도 답은 나온다.
모던 브라우저에서는 위처럼 보일것이다.
자바스크립트로는 코드가 정확하지 않은 것 같아서 C++로 다시 적었다.
소스: https://ideone.com/yoLJXx
신기하게도 규칙을 만족하는 숫자는 3816547290 뿐이었다.
수능 D-100 특집으로 이런 문제가 나왔다.
첫 번째 숫자까지는 1로 나누어지고,
두 번째 숫자까지는 2로, .... 열 번째 숫자까지는 10으로 나누어진다.
0부터 9까지 10개의 숫자를 모두 사용해 규칙에 맞는 수를 만들어라.
다음과 같은 몇 가지 규칙을 발견하고 브루트 포스로 풀어보기로 했다.
1. 열 번째 숫자는 0 이다. (10의 배수는 0으로 끝나기 때문)
2. 다섯 번째 숫자는 5 이다. (5의 배수는 0, 5로 끝난다. 0은 열 번째 숫자이므로 5)
3. 짝수 번째 숫자는 2, 4, 6, 8 중 하나이다.
4. 홀수 번째 숫자는 1, 2, 3, 4, 6, 7, 8, 9 중 하나이다.
소스: https://jsfiddle.net/J00nas/yrmen84L/
javascript로 적어봤는데, 비동기식이라 그런지 제대로 걸러지지가 않는다. (그리고 브라우저의 자바스크립트 버전별로 다르게 보일 수 있다.) 그래도 답은 나온다.
모던 브라우저에서는 위처럼 보일것이다.
자바스크립트로는 코드가 정확하지 않은 것 같아서 C++로 다시 적었다.
소스: https://ideone.com/yoLJXx
신기하게도 규칙을 만족하는 숫자는 3816547290 뿐이었다.
(追記) (追記ここまで)
2016년 8월 2일 화요일
[Node.js] TypeError: require(...) is not a function 해결방법
'use strict';
module.exports = function(param){
// something to handle
require('./otherModule)(param);
});
위와 같은 코드 형태에서 TypeError: require(...) is not a function 에러가 났었다.
아래처럼 고치니 잘 작동했다.
module.exports = function(param){
// something to handle
require('./otherModule)(param);
});
혹시나싶어서 'use strict'를 지웠는데, 그것이 먹혔다.
이유를 알고싶어 검색하다가 아래와 같은 글을 찾았다.
Aliencube Community :: 자바스크립트에서 strict mode를 사용해야 하는 이유
엄격한 컨텍스트에서는 require('...')() 을 제한하나보다. 혹은 "상대적으로 안전하지 않은 액션"이였거나..
태그:
Javascript,
nodejs
(追記) (追記ここまで)
2016년 7월 25일 월요일
req.user is undefined on node + express + passport
Node.js + Express 4.x + passport 환경에서 로그인(또는 사용자 인증) 후에 Request 객체에 user가 저장되지 않아요.
express와 passport 모두 잘 동작하지만 사용자 인증 후에 req.user를 확인하면 아무값도 없는 현상이 나타났다.
express를 설정하는 부분에서 미들웨어 등록 순서때문에 일어난 일이다.
express에 session 미들웨어를 설정한 후에, passport를 등록해야 정상적으로 동작한다.
express와 passport 모두 잘 동작하지만 사용자 인증 후에 req.user를 확인하면 아무값도 없는 현상이 나타났다.
express를 설정하는 부분에서 미들웨어 등록 순서때문에 일어난 일이다.
// set session
app.use(session({
secret: 'SomethingPowerfulSecret'
}));
// set passport
app.use(passport.initialize());
app.use(passport.session());
express에 session 미들웨어를 설정한 후에, passport를 등록해야 정상적으로 동작한다.
태그:
express,
Javascript,
nodejs,
passport
2016년 5월 26일 목요일
SyntaxHighlighter 변경
블로거에 설정한 Syntax Highlighter가 갑자기 적용이 안됬다.
무슨일이지 싶어서 콘솔을 봤더니 불러오기 실패라고 한다. (SOF 글 - Failed to load resources when trying to perform syntax highlighting in a blog) 을 보니까, 전에 연결한 프로젝트가 없어졌다고 한다(削除) (예...??!) (削除ここまで)
Syntax Highlighter를 배포하는 제작자의 링크를 직접 연결하면 되지만.. 문제는 하이라이트를 적용하는 구문이 다르다 (!)
<pre name="code" class="언어"> 로 사용하고 있었는데, 이제 원래 구문인 <pre class="brush: 언어"> 로 써야한다. 이제까지 적었던 글들을 모두 바꿔야 하는가.... 허어......
우선 원저작자걸로 다시 연결하려했으나 link랑 script 태그에 적은 http 가 https 로 강제 변환됐다. 이유는 모르겠으나 http://itsonlycode.blogspot.com/2015/06/blogger-setup-syntaxhighlighter-for.html 를 참고하여 새로 설정했다.
지금 포스트 이후로는 class="brush:언어;" 형태로 쓰겠지만, 이전의 포스트들의 HTML 태그를 수정하지 않고 그대로 사용하고 싶다.
그래서 아래와 같은 코드를 추가했다.
무슨일이지 싶어서 콘솔을 봤더니 불러오기 실패라고 한다. (SOF 글 - Failed to load resources when trying to perform syntax highlighting in a blog) 을 보니까, 전에 연결한 프로젝트가 없어졌다고 한다
Syntax Highlighter를 배포하는 제작자의 링크를 직접 연결하면 되지만.. 문제는 하이라이트를 적용하는 구문이 다르다 (!)
<pre name="code" class="언어"> 로 사용하고 있었는데, 이제 원래 구문인 <pre class="brush: 언어"> 로 써야한다. 이제까지 적었던 글들을 모두 바꿔야 하는가.... 허어......
우선 원저작자걸로 다시 연결하려했으나 link랑 script 태그에 적은 http 가 https 로 강제 변환됐다. 이유는 모르겠으나 http://itsonlycode.blogspot.com/2015/06/blogger-setup-syntaxhighlighter-for.html 를 참고하여 새로 설정했다.
지금 포스트 이후로는 class="brush:언어;" 형태로 쓰겠지만, 이전의 포스트들의 HTML 태그를 수정하지 않고 그대로 사용하고 싶다.
그래서 아래와 같은 코드를 추가했다.
<script type='text/javascript'>
function addBrushToClass(){
var codes = document.getElementsByName("code");
for(var i in codes){
var originClass = codes[i].className;
codes[i].className = "brush: " + originClass +";";
//codes[i].setAttributes('name', 'converted');
}
}
window.setTimeout(function() {
addBrushToClass();
SyntaxHighlighter.config.bloggerMode = true;
SyntaxHighlighter.all();
}, 50);
</script>
피드 구독하기:
덧글 (Atom)