쓰던 글이 날아갔다.. 나중에 다시 영화를 감상하며 생각에 빠지기로 하고. 간단히 정리하면.


위플래쉬는 한국말로 채찍질이며, 영화의 연주단이 연주하는 메인 연주곡의 이름이다. 교수 플레쳐가 제자 앤드류를

채찍질하는 영화의 흐름을 의미하기도 한다.


제 2의 찰리 파커(천재 뮤지션)을 만들어 내기위한 플레쳐의 강압적인 교육 방식에서 많은 갈등을 빚으면서도

드럼에 대한 열정과 메인자리를 얻겠다는 꿈으로 손에서 피가나도록 연습하고, 차에 치여 온몸이 피투성이가 되도 연주회

에 기어가는 모습을 보면서. 나는 무언가에 그 토록 열정적이었던 적이 있나? 최선을 다했던 적이 있나 하고

생각하고 반성해 보았다.


영화의 클라이막스에서는, 나라면 저 자리에서 그냥 박차고 나갔겠지 싶었던 순간에서도 앤드류는

그동안의 수많은 연습을 기억하며 연주를 리드해 나간다. 이때부터 미친 드럼 연주가 시작되며 절정에 다다른다.

이 장면을 보며 앤드류와 플레쳐의 바에서의 대화가 오버랩되었다.

앤드류"아무리 그래도 교육 방식에 지켜야할 선은 있어요. 그걸 넘으면 제2의 찰리 파커가 될 사람도 떨어져 나갈 거예요.

플레쳐"아니, 제2의 찰리 파커가 될 녀석이었으면 굴하지 않겠지"


플레쳐의 교육 방식을 절대로 지지 하지는 않는다. 하지만 그러한 채찍질이 남들에겐 평범해 보이고 재능이 없어 보이는

열정과 꿈을 품고 있는 인재에게 큰 기폭제가 될 수 있을지도 모른다는 것엔 동감한다.

무엇보다 중요한건 그러한 채찍질에 굴하지 않고 피나는 노력으로 자신을 연마할 수 있는 용기와 집념이 아닐까 싶다.


음악 영화 답지 않은 반전의 반전(?)을 거듭하며 스릴러 못지 않은 진행으로 높은 몰입도를 자랑한다.

나는 무엇을 위해 사는지. 꿈을 위해 어떤 노력을 하는지를 되돌아 보게 하는 영화. 

미친 연기력의 두 배우와 미친 사운드로 관객의 눈과 귀를 사로 잡는 영화 위플렉스!

영화의 엔딩 크레딧이 올라갈때 혼이 빠져있는 자신을 발견하게 될 것이다.


추가.

이 영화는 스릴러 영화인가? 마지막 앤드류의 솔로 드럼 연주를 보는 동안 숨을 쉴수가 없었다.

땀방울이 튀기는 드럼연주와, 플래쳐와 앤드류의 눈빛 표정 연기 그리고 미친듯한 드럼 연주는

관객들의 시간을 멈추어 버린다. 이 장면이 위플래쉬의 모든것이라고 볼 수 있는 최고의 클라이막스였다.

(이 마지막 10분을 위해 영화는 전개된것이다.)

'영화 리뷰' 카테고리의 다른 글

마션(Martian)  (1) 2016.06.19
2012 월플라워  (0) 2015.04.04
와일드 (WILD) - 못이 되느니 망치가 되겠다.  (0) 2015.01.25
인터스텔라  (0) 2014.11.09
[2014 겨울왕국] Do you want to build a snowman?  (0) 2014.02.06
Posted by Yann'
,




모험, 여행, 극기, 도전. 듣기만 해도 가슴이 벅차 오르는 단어들이다.

그래서 그러한 주제가 나타나는 영화, 음악, 책, 다큐는 가리지 않고 모두 좋아한다.

월터의 상상은 현실이 된다 가 근래에 기억에 남는 영화이다.

예고편과 줄거리를 보고 개봉일만을 기다렸던 영화 '와일드' 를 새벽 심야 영화로 보고 왔다.

인기 기대작이 아니어서 인가? 내가 사는 곳에는 상영관이 롯데시네마 한곳뿐 이었다.(그마저도

가장 작은 스크린관이며 상영 시간대도 얼마 없다.)

심야 여서 그랬는지 몰라도 100명이 채 들어갈 수 없어 보이는 상영관에 관객은 10여명 정도 였다. 덕분에

방해 받지 않고 영화에 몰입할 수 있었다.


주인공 셰릴(맞나?)은 어려서부터 알콜 중독자 아버지가 엄마에게 폭력과 폭설을 일삼는걸 보고 자랐으며

넉넉치 못한 형편으로 살아 왔다. 어두워 보이는 삶에서 버팀목이 되어주고 세상의 중심이 되었던 어머니가

돌아가시자 그녀는 좌절하고 방탕한 생활을 하며 지낸다. 그러다 무언가를 계기로 PCT 하이킹을

떠나게 되는데.. 90일간의 힘든 여정 속에서 지난 인생을 되돌아보고, 움켜 쥐던 미련과 아픈 기억들을 털어 

버리며 삶의 목표를 찾아 간다.

아름 다운 영상미와 주인공 셰릴이 여정을 통해 자기 성찰 하는 과정을 보고 있노니, 나도 하이킹을 떠나고 싶다

는 욕망이 영화 보는 내내 밀려왔다.


영화는 월터의 여행기처럼 가볍고 유쾌하지도 그렇다고 너무 무겁지도 않지만 굳이 표현 하자면 무거운 영화

로 분류 하고 싶다. 그만큼 주인공이 안고 있는 과거의 아픈 상처와 후회들을 여정 곳곳에서 교차 하며 표현해

주고 있다. 관객이 단순히 순간의 희망과 감동에 젖는 것이 아니라 주인공에 모습에 자신을 투영해보고 조금더

현실적이고 진지하게 나의 인생에 대해 생각해 볼 수 있도록 해주는 영화다.

무언가 자극적이고 강렬한 감동이나 희망적이고 신나는 모험기를 기대하는 분들은 실망 할 수도 있다. 셰릴은

조금씩 조금씩 90여일을 전진한다. 발톱이 빠지기도, 위기에 처하기도. 그러다가 뜻밖의 인연을 만나기도 한다.

영화도 마찬가지다.


셰릴은 생각한다. 내가 날 용서 했다면? 내가 후회 했다면? 하지만 그때로 돌아가도 똑같이 반복할 것이다.

내 과거의 행동들이 날 여기로 이끈 거라면?

내가 이 영화에 몰입하고 많은 생각을 할 수 있던 것은, 주인공과 비슷한 경험과 처지도 있지만, 주인공이

성찰 과정중 스스로에게 던지는 질문들이 내가 한번쯤 던져보며 생각해본 것들과 상당히 닮았기 때문이다.

지난 일에 대한 후회와 절망 그리고 생각처럼 풀리지 않던 일들이 결국 내가 스스로를 돌아보며 반성하고 

깨달음을 얻을 수 있는 기회와 지혜를 준것이 아닐까 생각해본다.


"못이 되느니 망치가 되겠다. 달팽이가 되느니 참새가 되겠다. 길이 되느니 숲이 되겠다." 셰릴은 선택의 기로에서 이 말을 항상 되뇌며 자신의 여행을 개척해 나갔다.   


마지막에 셰릴은 말한다.

"흘러 가게 둔 인생은 얼마나 야생적인가. 더욱 가까이서 보고 더욱 가까이서 나의 인생을 느껴라"





셰릴의 엄마가 했던 말이 기억에 남는다.

"니가 최고가 되는 순간을 찾아라. 그리고 그 순간을 유지하기 위해 최선을 다해라"

 


'영화 리뷰' 카테고리의 다른 글

2012 월플라워  (0) 2015.04.04
[15.03.21 토] 위플래쉬  (0) 2015.03.22
인터스텔라  (0) 2014.11.09
[2014 겨울왕국] Do you want to build a snowman?  (0) 2014.02.06
[2013]월터의 상상은 현실이 된다.  (0) 2014.01.19
Posted by Yann'
,

소프트웨어 개발 프로세스에서 

개발 단계 이상의 자원(인력, 시간 등)이 소모 되는 단계가 바로 유지보수 단계이다.

유지보수를 고려하여 설계되지 않은 프로그램을 수정하는대에는

많은 시간,돈,인력이 필요 하며 그러한 투자가 프로젝트에 이익을 남기지 않는다.

즉. 아무리 투자해도 이윤은 남지 않는 결과를 초래 한다.

그래서 유지보수 단계는 개발보다 중요하며, 유지보수를 고려하여 프로그램을 설계해야 하는 이유가 된다.


유지보수를 고려하지 않은 프로그램에 요구사항 수정이 들어오면 개발자들은 다음과 같은 반응을 보이곤 한다.

"별거 아닌 기능이지만, 그 기능을 추가 하기 위해서는 너무 많은 코드를 수정 해야하고, 그로 인해 어떠한 사이드 이펙트가 발생할지 모른다"


프로그램을 설계할때는 수정이 용이하게, 유지보수가 쉽도록 설계 해야 한다. 그렇기 위해 필요한 것이 바로

캡슐화와 추상화를 적용한 객체 지향 설계!

Posted by Yann'
,

정수 표현시에 반올림을 적용하면 0~4까지는 내림, 5~9까지는 올림수가 된다.

한 예로 1의자리 반올림을 하면

14 - > 10

15 - > 20

이와 같이 변한다. 하지만 소수점은 어떻게 적용이 될까??

소수점 이하 첫째자리까지만 표시하도록 해보았다.


float a = 0.54;

float b = 0.55;

float c = 0.56;


printf("%f\n", a);      - a1

printf("%0.1f\n", a);  - a2

printf("%f\n", b);      - b1

printf("%0.1f\n", b);  - b2

printf("%f\n", b);      - c1

printf("%0.1f\n", b);  - c2


이때 출력값은

a1 : 0.54    a2: 0.5 (예상 결과 0.5)

b1 : 0.55    b2 : 0.5 (예상 결과 0.6)

c1 : 0.56    c2 : 0.6 (예상 결과 0.6)


어째서 b의 결과는 예상 결과와 상이한 것일까?

0.55를 소수 첫째자리까지 반올림하면, 두번째 자리 5가 올림되어 0.6되는게 아닌가?


해석.

2진수 컴퓨터 체계에서 숫자는 정수부분과 실수부분으로 나뉜다.

이때 정수부분 표현은 어떤수라도 표현 가능 범위에만 있으면 100% 정확하게 표현이 가능하다.

하지만 실수 부분은 그렇지 않은데 

0.5 = 0.1 (2)

0.25 = 0.01 (2) 와 같이 2진수로 맞아 떨이지게 계산되는 수가 있는가 하면

0.55 = 0.1000110011001100....(2)와 같이 떨어지지 않는 수도 있다

즉 2진수 체계에서는 실수를 정확하게 표현할 수 없다.


위의 예를 돌아가 보자.

입력 값들은 실제 다음과 같은 값으로 저장되어 있다.

0.54 = 0.539559..... (출력시에는 0.54로 보임)

0.55 = 0.5487....     (출력시에는 0.55로 보임)

0.56 = 0.558......     (출력시에는 0.56으로 보임)

즉 가장 근사한 값일 뿐이지 실제 0.55를 입력했다고해서 메모리에 0.55가 정확히 저장되어 있지 않는다.

그렇기 때문에 소수점 첫째자리까지 출력한다고 하면.

입력한 0.54 -> 0.5가 되는 것이 아니라 0.539559 -> 0.5가 되고

입력한 0.55 -> 0.6이 되는 것이 아니라 0.5487 -> 0.5가 되고

입력한 0.56 -> 0.6이 되는 것이 아니라 0.558 -> 0.6이 되는 것이다.



결론.

컴퓨터에서 소수점 이하 출력시에는, 입력한(눈에 보이는) 값 자체로 반올림을 따지면 결과가 다르고,

실제 저장된 값을 확인해 봐야 한다.


Posted by Yann'
,

하루의 시작과 끝을 함께한다 말할 정도로

스탠딩 에그의 모든 앨범 수록곡 하나하나의 멜로디와 가사가 마음을 적시고 좋아하는 인디 밴드이다.


크리스마스도 다가오고, 불금에 약속하나 없는 자신이 처량해져 볼만한 콘서트 없나 검색하다보니

때마침 일요일에 대전에서 스탠딩 에그의 콘서트가 있는걸 보고 바로 예약했다.


그리고 기대되는 솔로잉 콘서트를 보러 가는 길!


14.12.7 일요일 저녁 7시. 충남대 정심화홀에서 열렸다.


입구에 들어서자 위압감이.. 노래 자체가 달달하고 조용조용하다 보니

전부 커플 아니면 여자들.. 자연스럽지 않은 표정으로 표를 발부 받고, 신청/사연곡 쓰는 곳에 신청곡도 적어

내었다. 그리고 공연장 입장



내가 앉은 좌석 위치. 앞에서 두번째줄에 오른편이었는데, 가깝고 좋았으나 오른쪽 스피커에 가까워서 양쪽

밸런스는 좋지 못했다. 충남대 정심화홀 자체 규모가 작은 편이라, 다음 번에는 뒤쪽에 앉더라도 센터석에

앉는게 좋을 것 같다고 생각..


역시나 공연장에 들어서니 온통 커플 아니면 여성들.. 뭔가 좀 뻘쭘 했으나 조용히 자리로 가서 앉았다.

애초에 내가 그런거 의식하는 성격은 아니니까.(그래도 정말 뻘쭘 + 커플 부러움)


공연이 시작 되자 라이브 멤버들과 에그2호형님이 들어 오셔서 바로 노래를 시작 하셨는데

그 첫곡은 바로 '고백'이란 곡이었다. 보컬인 에그2호형님이 생각과는 달리

상당히 친근한 동내형 같은 외모였다. 에그2님 자체가 스탠딩 에그구나!!

 목소리와 라이브 연주는 정말 cd와 다름 없는

수준급이었다. 말도 정말 재미있고 재치있게 잘 하시더라.


이후에 객원보컬  윈디(windy)님과 예슬님의 공연도 있었다.

외모뿐 아니라 목소리가 정말 좋았다. 에그형만 보다가 여성분들 보니 내 입가의 미소가

사라지질 않았다. 히죽히죽


1시간의 조용조용한 선곡들 이후 나머지 1시간은 신나는 곡으로 흥을 띄운 스탠딩 공연 이었다.

살짝 루즈해지려는 분위기가 반전되고 즐거웠던 시간!.

그리고 30여분간의 앵콜시간에는 사연을 읽고 신청곡을 불러 주셨다.


개인적으로 좋아하는 이번 신곡인 '아마도 내일은' 과 '들어줄래' '오래된노래' 를 모두 듣게 되어 너무나 좋았다.



그렇게 돈이 아깝지 않은 콘서트를 보며 뿌듯한 마음으로 집으로 돌아가는데

가슴 한켠이 아려왔다..


총평.

다음 번엔 여자 친구를 만들어서 가야지ㅠㅠ



Posted by Yann'
,

같은 요일 같은 시간대, 새벽 1시 35분 시작 아이맥스관에서 인터스텔라를 다시 보았다.

처음의 감동을 다시 느끼고 싶었고, 한스 짐머의 OST를 들으며 한번 더 전율을 느끼고 싶었다.

그런데 3시간중 1시간을 자고 나왔다. 처음만 잠깐 졸은 것도 아니고, 3시간 내내 졸린 눈을 뜨기 위해

음료수도 마시고 볼도 때리며 보았지만, 내내 졸면서 봤다. 아무래도 출장에서 밤늦게 복귀한 영향인듯..

거기다, 처음 본지 일주일만에 재감상을 하다 보니 모든 대사, 장면이 너무나 생생해서 처음의 감동을 

다시 느끼지 못했다. 그래도 앤해서웨이는 여전히 이뻤다. 어린 딸도 귀욤귀욤. 

아무튼 세번은 보려 했던 계획은 접어두고, 상영 막바지쯤에 상영관에 자리가 남아 돌게 된다면 

그때 다시 보지 않을까 싶다.

Posted by Yann'
,

인터스텔라

영화 리뷰 2014. 11. 9. 21:05




메멘토, 인셉션, 다크나이트를 제작한 크리스토퍼 놀란 감독의 영화. 각본은 동생 조나단 놀란이 썼으며 OST는 한스짐머! 이름 만으로도 설레이는 영화이다.


이 영화를 아이맥스의 프리미엄존에서 보기 위해(좋은 센터 자리) 새벽 1시 30분 ~4시 30분 상영 영화를 예약 하였고, 일행 두명과 함께 졸지 않고 시간을 때우기 위해 여기 저기 돌아 다니고 먹고 마시고를 하였다.


이 영화의 제작, 개봉 소식은 2~3개월 전부터 알고 있었으나 개봉 전까지는 그리 큰 기대나 관심을 둔 영화가 아니었다. 하지만 이게 내 역대급 영화가 될줄이야.


러닝 타임은 3시간이지만 나는 영화와 함께 시간 여행을 하고 돌아왔다. 나의 체감 시간은 10분이지만 영화가 종료된 시간은 3시간이나 지나 있었으니.

아인슈타인의 상대성 이론, 중력, 블랙홀, 웜홀 등 과학 적인 소재를 다룬 영화이고 처음부터 끝까지 그러한 이야기로 흘러 간다. 가족애와 휴머니즘도 묻어 있긴 하나 현대 과학 기술이 이해하고 있는 우주에 대한 상상(?)을 최고의 제작진이 만들어 놓은 과학 영화라고 생각 되기도 한다. 거기에 환상적인 OST와 놀란의 감성이 묻어 보는 내내 숨막히고 집중하며 경이로움을 느끼게 하였다. 하지만 과학에 대한 지식이 많지 않아도 영화 감상에는 저어어언~~혀 지장이 없다는것! 왜냐? 친절히 잘 설명해주며, 이 작품은 놀란의 인셉션 처럼 관객이 추리하고 의문을 갖고 반전에 대해 논할만한 영화가 아니기 때문이다. (반전이 있는 것도 아니기 때문)


감상 내내 2013년 개봉작 Gravity가 연상 되었다. 그만큼 두 작품 모두 우주의 공활함과 허무함을 잘 표현한 영화가 아닌가 생각한다. 인터스텔라를 보며 우주의 공활함 앞에 느낀 허무함과 허탈함이 아직까지도 잊혀지지 않는다.


영상미도 뛰어나지만 그보다 더 뛰어난게 바로 한스 짐머의 OST가 아닌가 생각한다. 신비롭고 미스테리한듯 하면서도 이지적인 느낌의 연주곡들을 들으며 3시간이 가는줄도 모르고 영화에 홀린듯 몰입 하였다.


놀란의 이전 작품에 비해 별로다, 생각 만큼 재밌지는 않았다, 흐름이 뻔하다 등의 혹평도 들리지만 개인적으로는 Best영화로 꼽고 싶다. (이전 까지 개인적인 Best영화는 스티븐 스필버그의 우주전쟁 이었다)


IMAX로 봐야 하는 영화이며, 남은 2014년 단돈 만원으로 만들 수 있는 최고의 경험이 아닐까 생각하며 리뷰를 마친다.

Posted by Yann'
,

ArrayInversionCount

Codility 2014. 10. 24. 14:20
Compute number of inversion in an array.

Task description

A zero-indexed array A consisting of N integers is given. An inversionis a pair of indexes (P, Q) such that P < Q and A[Q] < A[P].

Write a function:

int solution(vector<int> &A);

that computes the number of inversions in A, or returns −1 if it exceeds 1,000,000,000.

Assume that:

  • N is an integer within the range [0..100,000];
  • each element of array A is an integer within the range [−2,147,483,648..2,147,483,647].

For example, in the following array:

A[0] = -1 A[1] = 6 A[2] = 3
A[3] =  4 A[4] = 7 A[5] = 4

there are four inversions:

  (1,2)  (1,3)  (1,5)  (4,5)

so the function should return 4.

Complexity:

  • expected worst-case time complexity is O(N*log(N));
  • expected worst-case space complexity is O(N), beyond input storage (not counting the storage required for input arguments).

Elements of input arrays can be modified.

Copyright 2009–2014 by Codility Limited. All Rights Reserved. Unauthorized copying, publication or disclosure prohibited.

접근방법 두가지
1. 1) A를 Merge_Sort한 B를 생성
    2) A의 앞부터 하나씩 꺼내면서 B에서 위치를 찾음. 찾은 위치 Index값이 Inversion 개수.
        A와 B에서 방금 원소를 삭제함
    3) A가 비어버릴때까지 2)를 반복하며 Inversion개수를 더한 결과가 정답

2. 1) A를 Merge_Sort하는 각 Step에서 Merge시 Right원소가 Left원소보다 작은게 나올때마다 Inversion개수 증가
    2) Merge_Sort가 종료되는 시점에서 1)단계의 각 Inversion개수의 합이 정답.

* 퀵소트는 최악의 경우 O(n^2)의 수행 시간이 소모 되므로 머지 소트를 사용함.




#include <string.h> typedef std::vector<int>::iterator vec_it; int merge(vector<int> left_vec, vector<int> right_vec, vec_it numbers) { vec_it left = left_vec.begin(); vec_it left_end = left_vec.end(); vec_it right = right_vec.begin(); vec_it right_end = right_vec.end(); int count = 0; int left_index = 0; int left_size = left_vec.size(); while ( left < left_end && right < right_end ) { if ( *left <= *right ) { *numbers = *left; ++left; ++left_index; } else { *numbers = *right; ++right; count += left_size - left_index; } ++numbers; } while (left < left_end) { *numbers = *left; ++numbers; ++left; } while (right < right_end) { *numbers = *right; ++numbers; ++right; } return count; } int MergeSort ( vector<int> &B ) { if (B.size() <= 1) { return 0; } std::vector<int>::size_type middle = (B.size()) / 2; std::vector<int> left(B.begin(), B.begin() + middle); std::vector<int> right(B.begin() + middle, B.end()); return MergeSort(left) + MergeSort(right) + merge(left, right, B.begin()); } int solution(vector<int> &A) { // write your code in C++11 return MergeSort ( A ); }

'Codility' 카테고리의 다른 글

MissingInteger  (0) 2014.10.23
Posted by Yann'
,

MissingInteger

Codility 2014. 10. 23. 19:12

Find the minimal positive integer not occurring in a given sequence.


Write a function:

int solution(vector<int> &A);


that, given a non-empty zero-indexed array A of N integers, returns the minimal positive integer that does not occur in A.

For example, given:

  A[0] = 1    
  A[1] = 3    
  A[2] = 6
  A[3] = 4    
  A[4] = 1    
  A[5] = 2

the function should return 5.

Assume that:

  • N is an integer within the range [1..100,000];
  • each element of array A is an integer within the range [−2,147,483,648..2,147,483,647].

Complexity:

  • expected worst-case time complexity is O(N);
  • expected worst-case space complexity is O(N), beyond input storage (not counting the storage required for input arguments).

Elements of input arrays can be modified.

Copyright 2009–2014 by Codility Limited. All Rights Reserved. Unauthorized copying, publication or disclosure prohibited.



// you can write to stdout for debugging purposes, e.g. // printf("this is a debug message\n"); #include <algorithm> int solution(vector<int> &A) { // write your code in C++11 sort ( A.begin(), A.end() ); int result = 0; if ( *(A.begin()) > 1 ) result = 1; else if ( *(A.end()-1) <= 0 ) result = 1; else { int beforeValue = 0; for ( vector<int>::iterator it = A.begin(); it < A.end(); it++ ) { if ( *it <= 0 ) continue; else if ( *it > beforeValue+1 ) { result = beforeValue+1; break; } beforeValue = *it; } if ( beforeValue == 0 ) result = 1; else if ( beforeValue == *(A.end()-1) ) result = *(A.end()-1) + 1; } return result; }

'Codility' 카테고리의 다른 글

ArrayInversionCount  (0) 2014.10.24
Posted by Yann'
,

임백준 저자(개발자)의 컴퓨터 관련 서적으로 전공서적과 에세이 사이를 오고 가고 있는 책이다.

임백준 저자의 여느 책과 마찬가지로 지루하고 고리타분한 전공 이야기만 늘어 놓지 않고 중간 중간

이야기하는 개인적인 경험이나 조언?등을 통해 독자들이 살짝 단추를 푸르고 긴장을 늦출 수 있도록

배려하고 있다.


임백준 저자의 책이 마음에 드는 이유는, 그의 느긋하고 반듯한 성격이 잘 들어나는 문체라고 생각한다.

천천히 귀가 펄럭일만한 흥미로운 소재로 이야기를 던져놓고 조금씩 빠른 리듬을 통해 결론을 이끌어내며

재미있는 게임과 같은 질문등도 던지곤 한다.. 저자에 대한 소개는 이만 줄이며.


이 책을 읽기전 보았던 '행복한 프로그래밍'과 같은 느낌의 책이다. 재미 있고 신기한 알고리즘, 문제 부터

개발자라면 한번쯤 접하고 절차를 밟아간 기본적인 알고리즘의 소개까지 제법 넓고 깊은 이야기를 다루고 있다.


(이어서)

Posted by Yann'
,