'팀매치'에 해당되는 글 6건

  1. 2010.09.09 짤림방지용 떡밥 by sloth_chord (4)
  2. 2010.07.15 NO SQL by sloth_chord (2)
  3. 2010.03.01 여러분의 스케치툴은 by sloth_chord (5)
  4. 2009.05.05 Java - system independent newline characters by sloth_chord (4)
  5. 2009.05.05 printf, newline, fork, fflush by sloth_chord
1.
/* BST는 Binary Search Tree 임 */
 
/* src의 복사본을 만들어서 dest를 리턴 */
BST* copy(BST *dest, const BST *src);
 
/* t1이랑 t2의 equality를 검사함. (t1 == t2) 인지 검사하라는 소리아님-_- */
int equal_trees(const BST *t1, const BST *t2);

위 함수들을 구현..
prototype은 C로 적어놨지만은 아무 언어나 환영

(BST 구현이 귀찮다는 반응이많았는데, 저 문제들 푸는거엔 delete나 update같은건 필요없음)

난이도 : 자료구조를 배운 학부 2학년


2.
unsigned short hton_s(unsigned short);
unsigned short ntoh_s(unsigned short);
 
unsigned long hton_l(unsigned long);
unsigned long ntoh_l(unsigned long);


위 함수들 구현하기.
이름보면 알겠지만 htons, htonl 류 클론 함수 만들라는거...
sizeof(unsigned short) * CHAR_BIT는 16, sizeof(unsigned long) * CHAR_BIT 는 32 라구 가정
host가 big-endian 이든 little-endian 이든 상관없이굴러가도록

매크로로 만들든 뭐로하든 상관없음 (사실 실제 라이브러리는 매크로로 되있음)

난이도 : big-endian, little-endian을 이해하구 있는 학부 1 ~ 2 학년정도


3.
/* (ab | a)* 에 매치되는지 아닌지 판정 */
int is_matched(const char *str);


프로토타입은 C이지만
아무 언어로나 해두 갠차늠
편의를 위한 기본적인 test case 몇개
const char* unmatched[] = {"b", "c", "abb", "abbab", "ac", "bc", "abc"};
const char* matched[] = {"", "a", "ab", "aba", "ababa", "abababab", "aaaaaaaa"};

난이도: 언어론이나 오토마타를 배운 학부 2학년 ~ 3학년쯤

4.
/* base ^ exp */
int pow_i(int base, unsigned exp);


위의 함수 구현하기

O(n)은 할게 없으니까는 O(logn)에 풀기
역시 C로 프로토타입을 적어놨지만 언어는 상관없음

난이도: time complexity, logarithm에 대해서 아는 학부 2학년쯤


Posted by sloth_chord
TAG 팀매치

댓글을 달아 주세요

  1. marocchino 2010.09.09 13:09 신고  댓글주소  댓글쓰기 수정/삭제

    1,2번은 평소에 자료형 신경안쓰는 언어써서 모르겠구
    3번은 /^(ab?)*$/으로 로직짜면 될거같구
    4번은 어려워요.

  2. DMW 2010.09.09 19:18 신고  댓글주소  댓글쓰기 수정/삭제

    거짓말 아니고...전부다 너무 어렵네요 ㅠ.ㅜ

  3. Heart 2010.09.13 12:44 신고  댓글주소  댓글쓰기 수정/삭제

    1번은 시간이 꽤 걸릴 것 같구여(귀찮)
    2번은 사실 저 함수들 자체를 안써봤구여
    3번은 전에 프갤에 올렸었구요 'ㅅ'

    4번은... 사실 제 머리에서 나온건 아니고 예전에 뇌자알 리뷰 할 때 봤어요 ㅎㅎ
    x^i = x^(i/2) * x^(i/2) <= i 가 짝수
    x^i = x^(i/2) * x^(i/2) * x <= i 가 홀수

    이걸로 Divide & Conquer 재귀 돌리면 O(log n) 에 끝나죠? :)

    http://codepad.org/FOHuHhSB

  4. sloth_chord 2010.09.14 12:09 신고  댓글주소  댓글쓰기 수정/삭제

    marocchino씨,DMW씨// 아니 이분들 안어울리게 왜 엄살을;;
    Heart씨//ㅎㅎ 뇌자알에 나왔었군여,,

NO SQL

bite_a_bit/a little bit of 2010. 7. 15. 10:09

http://asserttrue.blogspot.com/2009/12/nosql-required-reading.html

시간 보내기삼아서 여기 주인장이 추천을하는 문서들좀 읽어보는데...

http://www.rackspacecloud.com/blog/2009/11/09/nosql-ecosystem/
http://themindstorms.blogspot.com/2009/05/quick-reference-to-alternative-data.html

여기서 data model 부분을 보면은알겠지만........정말 general 쏠루션이라구 하기엔 지원하는 data model들이 너무 부실하다
relational model에 대면은 모델이라구 하기도 민망할정도..
model을 포기하구 distributed system을 구축할때 transaction의 performance에 입빠이 집중한 졸라 specific 쏠루션들인것같다.
NO SQL 어프로치는 딱 아마존에서 Dynamo 활용하는 그 정도가 best practice인듯싶다.

general 하지못해서 RDBMS와 타겟이 다름에도 불구하고 왜
NO SQL approach VS RDBMS가 화자가 되는것일까?

대충 내 갠적인 생각으로는 기업용 시스템을 구축할때 NO SQL 어프로치를 고려 하는 경우는

1. Amazon의 Dynamo, Google의 Bigtable의 성공 사례
- 쿨한 회사의 성공사례를보면 따라하고싶을수밖에 없다.

2. Relational model 까지 필요하지 않은 어플리케이션들
- 적절한 경우같다....

3. Relational model이 좋겠지만, 역량있는 설계자가 없거나 설계에 투자할만한 시간이 없는경우
- 어차피 안되는거 걍 쉬운 모델로가자

4. 유행하길래

정도 같은데...

Posted by sloth_chord
TAG 팀매치

댓글을 달아 주세요

  1. DMW 2010.07.15 16:28 신고  댓글주소  댓글쓰기 수정/삭제

    2, 3번이 맘에 드네요

  2. clique 2010.07.18 15:50 신고  댓글주소  댓글쓰기 수정/삭제

    저희 회사 같은 경우는, 2. rdbms가 일종의 superset이라 가능은 하지만, 느리기도 하고...

어떤 알고리즘이나 아이디어를 시험해볼 작은 모듈을 만들어야될때, 또는 재미로 작은 장난감문제를 풀때라든지..
하여튼 빨리 대충 굴러가는 뭔가를 시험해보구싶을때 무슨 도구를 사용들하시는지

아무래도 손에 익은 도구가 제일 먼저 손이가다보니까 나같은경우에는 C를 먼저 고르구, C로 만들기 매우 귀찮은 경우에는 그전에는 Java, 요즘은 Ruby쪽으로 손이간다.
가끔 lambda, closure가 필요할때는 Scheme도 쓴다. Ruby의 code block은 좀.... 어색하다. each, map, inject 등을 쓸때 제한적이구 수동적으로 쓰는정도다..........
사실 잘 모르는게, Ruby에 lambda란 키워드랑 Proc.new가 있다는걸 안지도 얼마 안되기는했다;;;; 암튼간에 Scheme의 labmda, closure 가 가진 졸라 쉬우면서 단순하구 일관적인 느낌에비해서 Ruby의 code block 은 쓰기에 좀 복잡한거같기도 하구 공부를 안해봐서 잘 모르겠다구하구 넘어가자..

그 다음에는 Bash shell script + 수많은 UNIX tool을 쓰는게 편한경우에 당연히 이것을선택한다

보통 이런용도로 얘기할때 많이들 꼽는 Perl이나 Python은..
음.. Python은 코드를 읽어야될일이 있어서 정말로 몇년전에 봤었는데.... 그냥 생긴게 마음에안들었다
Perl은.. 가끔 코드를 읽어야 될 일이있어서 읽을때마다 전혀 좀 진지하게 배워야겠다 라는 생각이 들지않게 만드는 코드가 대부분이다.... 그러면서 Bash script 쓴다구 한거는 또 앞뒤가 안맞지않느냐 따진다면.. 뭐 걍 내마음이다

여러분들은 뭘쓰시는지....
하루 평균 방문자가 5명내외인 블로그에서 이런 질문을 하는것도웃기지만은,
혹시 읽은분들은 댓글달아주시면매우 감사하겠음

 

Posted by sloth_chord
TAG 팀매치

댓글을 달아 주세요

  1. marocchino 2010.03.01 20:38 신고  댓글주소  댓글쓰기 수정/삭제

    옛날에는 ruby -> python -> shell script 순이었는데
    %x()구문 알아낸 이후로는 shell script + ruby로 떡을 침미다.

  2. marocchino 2010.03.01 20:41 신고  댓글주소  댓글쓰기 수정/삭제

    근데 람다가 꼭필요한 경우가 있냐능. 'ㅅ'

    • sloth_chord 2010.03.01 23:24 신고  댓글주소  수정/삭제

      꼭 필요하진 않더라두 걍 있으면 편할때가있죠^^
      있으면 편해서쓰려구할때
      Ruby의 lambda, Proc.new나 yield등 code block 사용하는게 저한텐 상대적으로 Scheme의 lambda, closure 보다는 낯설어서그런지 좀 불편하구하네요 scope나 뭐 그런 부분들이요

  3. 피로토스 2010.03.02 10:24 신고  댓글주소  댓글쓰기 수정/삭제

    난 VB6를 먼저..

  4. clique 2010.03.02 23:24 신고  댓글주소  댓글쓰기 수정/삭제

    unix환경에서 c를 가장 비중있게 사용하다 보니까 자연스럽게 python이 됐습니다.

    다양한 built-in library도 만족스럽고요.

http://leepoint.net/notes-java/io/10file/sys-indep-newline.html

public static String newline = System.getProperty("line.separator");

뭐..이런걸 쓰자는이야기
특히 문자열중간에 newline 들어가구 그런거 파일에다 쓰거나 할때에는 좀 지켜주면은 명랑한사회이룩에 도움이될거같다.

http://www.coderanch.com/t/411039/Java-General-beginner/java/insert-new-line-character-String
이런 고민을하는 아이들도 있고그러하다.

위 링크를 보면 언제 쓰지말아야할지도 나와있다.

When NOT to use the system independent newline characters

JTextArea lines should be separated by a single '\n' character, not the sequence that is used for file line separators in the operating system.

Console output (eg, System.out.println()), works fine with '\n', even on Windows.

내가 Swing 짤일은 없겠지만 아무튼

Posted by sloth_chord
TAG 팀매치

댓글을 달아 주세요

  1. marocchino 2009.05.05 13:07 신고  댓글주소  댓글쓰기 수정/삭제

    오오 이것만 있으면 (\r)?\n 질로 매칭 안해도 돼는거군요.

  2. Heart 2009.05.12 11:28 신고  댓글주소  댓글쓰기 수정/삭제

    하지만 이걸로 윈도우 기반에서 파일에 써놓고 *Nix 로 binary 전송한다면... 100프롭니다

http://www.linuxforums.org/forum/linux-programming-scripting/26022-c-something-weird-using-printf-fork.html

대충요약하면은.. *nix 환경에서는 stdout으로 터미널로출력될때에는 line buffered된다는것.. '\n'을 만나면은 flush된다는얘기..
하지만 파일에다쓸때는 버퍼가 다 차거나, fflush로 밀어내거나할때까지 쌓이는것

Posted by sloth_chord
TAG 팀매치

댓글을 달아 주세요