00. Book

더 나은 프로그래밍을 위한 코드 골프

오뉴 2015. 10. 8. 00:15



코드골프

저자
야나이 마사카즈 지음
출판사
한빛미디어 | 2015-02-01 출간
카테고리
컴퓨터/IT
책소개
이 책은 코드골프와 알고리즘에 관한 책입니다. 코드골프는 언어명...
가격비교


- 코드골프는 가능한 한 적은 타수로 홀인을 겨루는 게임인 골프처럼 최대한 짧은 코드로 정해진 출력을 만들어내는 프로그래밍 게임입니다.

- 예제파일 위치 : http://www.hanbit.co.kr/exam/2167/

 source.zip


- 플레이그라운드 

 1. jsdo.it - http://jsdo.it

 2. JS Bin - http://jsbin.com

 3. JSFiddle - http://jsfiddle.net


- 자바스크립트 코드골프 기법

 1. 주석 삭제하기 

 2. 탭문자 삭제하기 

 3. 불필요한 공백 삭제하기 

 4. 불필요한 개행문자 삭제하기 

 5. 세미콜론 삭제하기 

 6. 변수명은 한 문자로 짓기 

 7. var 키워드 삭제하기 

 8. [](대괄호)를 사용하여 배열 생성하기 

 9. for문의 {} 삭제하기 

10. 콤마를 사용하여 명령 연결하기 

11. if문을 &&으로 대체하기 

  a == 0 && console.log("zero")

12. if else 문을 조건연산자로 바꾸기

13. 문자열의 한 문자를 첨자를 이용하여 가져오기 

  console.log("abcdefg"[2])

14. |0으로 소수를 정수로 변환하기 

  console.log(12.345[0])

15. ~~으로 부동소수점을 정수로 변환하기 

  console.log(~~12.345)

16. boolean을 수치연산에 사용하기 

 console.log(+true)

17. 0과 그 이외의 값을 boolean으로 사용하기 

 for(i=3;i--;) console.log(i);

18. 수치연산에서 NULL 문자를 0으로 활용하기 

 i="",console.log(++i);

19. 요소의 수가 하나인 배열 사용하기 

 i=[100]; console.log(++i)

20. 부동소수점의 0 생략하기 

21. 다양한 방법으로 변수 초기화하기 

 i=[j=9,k=l=((m=8)/2)]

22. 함수 오브젝트를 배열 대신 사용하기 

 f[0] = 1;

 for(var i = 1; i <=5; i++) f[i] = i * f[i - 1];

 f(f[5]);

 function f(a) { console.log(a); }

23. 함수의 인수를 이용하여 지역변수 초기화하기 


- 코드 단축화 툴 

 1. 클로저 툴 - Google Developers

 https://developers.google.com/closure

 2. 클로저 컴파일러 - Google Project Hosting

 http://github.com/google/closure-compiler/

 3. 클로저 컴파일러 서비스 

 http://closure-compiler.appspot.com/home


- 미로 생성 알고리즘

 1. 막대 쓰러뜨리기 알고리즘

 2. 구멍 뚫기 알고리즘 

 3. 벽 늘리기 알고리즘 

- 자동 미로 생성 사이트 http://crocro.com/auto_maze/


- 랜덤 알고리즘

 1. 선형합동법

 2. 메르센 트위스터 

 3. Xorshift 


- 이미지 확대/축소 알고리즘

 1. 최근방 이웃 보간법

 2. 바이리니어 보간법

 3. 바이큐빅 보간법 


- 프랙탈 도형 

 1. 코흐 곡선

 2. 시어핀스키 가스켓

 3. 만델브로트 집합 


- 월드맵 자동생성 http://crocro.com/html5/world_map/


link.zip