지금까지 읽었던 책들과는 장르가 아예 다르다. 

 

처음부터 끝까지 힘들다, 죽고싶다 라는 내용과 

 

남편 , 주치의 선생님 , 멀어진 친했던 친구 , 병원 입원하고 퇴원 , 자실 시도하는 애기들로 

 

채워져 있다. 

 

심지어 놀라웠던 사실은 책에는 어떻게 회복되었는 가란 실마리도 보이지 않았다.

 

그렇지만 이 책이 가치있는 것은 어느 누구도 시도하지 않았던 내용으로 도전했기 때문일 것 이다. 

 

책의 내용과는 다르게 , 저자는 고등학교 시절 자신이 성폭력의 피해자 였음을 고백하는 대 , 

 

이것이 본인 자신에게 밣히기 힘든 고백 이었을지도 모르지만, 막상 밝히고 나니 어땠을까?

 

궁굼해진다. 

 

앞으로도 저자의 치유되는 모습을 지켜보았으면 좋겠다.  

 

 

TRIE 를 비교적 쉽게 풀 수 있었던 문제 

 

TRIE 를 쓰지 않으면 , 전체 스트링을 비교해야 되니까? O(n^2) 의 알고리즘이 

 

TRIE 를 써서  O(n) 의 속도로 줄어들 은 것 같다. 

 

처음에는 add 를 하면서 바로 NO 인 케이스를 발견해내는 방법으로 진행했는 데

 

12345 가 들어오고 123 이 들어오면 괜찮으나 반대로 123 이 들어오고 12345 가 

 

들어오면 구현이 어려워지는 문제점이 있어서 다른 곳에서 본 대로 , 먼저 add 로 

 

전부 저장해 놓은 후에 , 추후에 find 를 해가면서 NO 를 발견하는 구조로 갔다. 

 

#include 

using namespace std;

#define INTEGER_NUM 10
#define MAX_TREE_SIZE 2000000
#define MAX_NUM 10000

struct NODE {
bool isWord;
NODE* children[INTEGER_NUM];
}nodes[MAX_TREE_SIZE];

int nodes_cnt = 0;

NODE* myalloc() {

for (int i = 0; i < INTEGER_NUM; i++) {
nodes[nodes_cnt].children[i] = NULL;
}
nodes[nodes_cnt].isWord = false;
return &nodes[nodes_cnt++];
}

void add(NODE* root, char* str) {
NODE* c = root;

for (int i = 0; str[i]; i++) {

int nextIdx = str[i] - '0';

if (c->children[nextIdx]) {
c = c->children[nextIdx];
}
else {
NODE* newNode = myalloc();
c->children[nextIdx] = newNode;
c = c->children[nextIdx];
}
}
c->isWord = true;
}

int find(NODE* root, char* str) {
NODE* c = root;

for (int i = 0; str[i]; i++) {
if (c->isWord == true)
return 0;

int nextIdx = str[i] - '0';

c = c->children[nextIdx];
}
return 1;
}

void init() {
nodes_cnt = 0;
}

int canAdd() {
int wordCnt;
char inputStr[MAX_NUM][11];
NODE* root = myalloc();

cin >> wordCnt;

for (int i = 0; i < wordCnt; i++)
{
cin >> inputStr[i];
add(root, inputStr[i]);
}
for (int i = 0; i < wordCnt; i++)
{
if (!find(root, inputStr[i]))
return 0;
}
return 1;
}

int main()
{
int total;

cin >> total;

for (int i = 0; i < total; i++)
{
// 초기화 
init();

if (!canAdd())
cout << "NO" << endl;
else
cout << "YES" << endl;
}
}

'알고리즘' 카테고리의 다른 글

문자열을 정수로 해싱하기  (0) 2021.06.13
DFS 로 풀어보는 "길 만들기 퍼즐"  (2) 2019.05.26

 경주는 수원에서도 300 키로가 넘는 거리라 , 큰 맘 먹기전에는 가기 힘든 곳이다. 

 

와이프 스케쥴에 맞춰서 5월 7일과 8일은 아이들이 현장 학습을 내고 , 나는 연차를 사용하여

 

경주를 다녀왔다. 캠핑도 고려하였지만 이러한 여행은 아무래도 피로감이 쌓이기 때문에

 

숙소는 민박을 이용했다. 다만 올라올 때는 , 빨리 올라와야되다는 부담감에 제대로 쉬지 

 

못하고 운전을 하게 된다. 역시나 다음날 마사지 갔더니 허리 근육이 많이 뭉쳤다고 한다. 

 

숙소는 보문 단지의 변두리 쪽에 있는 금잔화 민박 

 

장점 : 첨성대랑 보문호수 중간 쯤에 있어서 어디든 가기 무난한 위치 였음. 

        가격대비 적당한 퀄리티 

단점 : 방 자체가 채광이 힘든 구조 였음. 다만 가격을 생각할 때 단점이라고 하기에는 무리가 있음

 

5 월 4일 ( 토요일 ) 

 

 수원에서 포항으로 출발 호미곶  --> 포항제철 견학 , 마침 포항 스틸러스 축구 게임이 있던 날이라서 견학을 마치니 

축구 끝나는 시간과 맞물려서 차 뺄 때에 무지 힘들었음

 

포항 제철과 광양 제철이 한 식구라는 것을 처음 알았음.  

 

5 월 5일 ( 일요일 )

 

 대릉원 ( 천마총 ) - 비단 벌레 열차 - 경주 역사 박물관 - 동궁과 월지 ( 안압지 ) 

 

천마 그림은 벽화가 아니고 , 말 등에 올려서 먼지 막이 용도로 쓰인 것에 그려 있는 그림이라는 

 

5 월 6일 ( 월요일) 

 

 양동 마을 - 보문호수 주변 

 

양동마을 해설 : 탱자나무는 사람을 막는 것이 아닌 귀신을 막는 다는 의미이다. 

                    생각이 바뀌면 인생이 바뀔 수 있다. 

 

 이날 날이 너무 추웠다. 패딩이 필요했을 정도였다. 

 

5 월 7일 ( 화요일) 

 

 석굴암 - 불국사 - 양남 주상절리 - 문무 대왕릉 - 감은사지 - 중앙, 성동시장 

 

문무대왕릉에서는 드론 날리시는 분이 있어서 화면 좀 같이 보면 안될까요? 하고 물어봤는 데

안된다고.. 이거 모하는 분들이길래 ? ㅎㅎ

 

불국사에서는 석가 , 다보탑에 연등을 둘러놓아서 사진 찍을 때에 매우 불편했음 . 

5 월 8 일 ( 수요일 ) 

 

 향교 - 최씨 부자댁 - 교동 법주 구매 - 최영화 빵 , 찰보리빵 구매 - 귀가 

 

향교는 국립 교육 기관 ( 경주에 있는 조선시대 유적 ) 

서원은 사립 교육 기관 

 

 

 

 

 

 

 

 

 

2019 년 4월 30일 , 역삼역 GS 타워 12 층

 

AWS 교육 다녀왔다가 , 우연치 않게 AWS 코리아 유저 그룹 , 경력 소모임에서 진행하는 세미나가

 

일정에 맞아서 , 수업 끝나고 세미나를 듣게 되었다. 

 

지금 돌이켜 보면 , 윤석찬님의 경험들이 나와 정확히 같을 수가 없어서 나에게 그대로 적용하기에는

 

무리가 있으나 , 그래도 보편적으로 적용되는 무엇이 있지 않나 싶다. 

 

그 중에서 몇가지 업데이트 해보면 

 

[[ 링크드인 update ]] 

 이력서 update를 잘 하라고 했다. 

 

[[ 커뮤니티 활동 ]]

 자기 의지와 동기가 있는 사람. 

 - 개발자 커뮤니티는 생물입니다. 세심히 키우고 소통해야 합니다. 

 - werner vogels ( 이 분 애기를 왜 했을까요? ) 

 

[[해외 컨퍼런스에 참석]]

 - 세션은 별 것 아니다 , 사람을 만나고 무슨 일이 벌어지는지 알아야 한다. 

 

[[공유는 항상 옳다]]

 - 기술적 영향력을 얻고 싶다면 개인한테는 일주일에 1 ~ 2개 

   --> 새로운 feature 나 tip 을 올린다. 

 

[[ 승진만이 능사가 아니다 ]]

 

[[ 시장이 요구하는 기술 ]] 

 - 나이가 들어도 핸즈온이 필수다. 

 - sbs- special 가회동 집사 빈센트 , 쓸모인류 

 

[[ 공부를 하는 팀이 잘 되는 것 같다. ]]

 - 뒷담화에 민감하지 말자 

 - 쓸 데 없는 것 잘 만드는 팀 

 

[[ 코딩 인터뷰 ]]

 - 풀라고 한 것이 아니고 approach 가 중요 못 풀겠으면 

  잔기술 다 가져다 붙여라. 

 - attitue than english skill 

 

'세미나' 카테고리의 다른 글

힐링 콘서트 [성지송 첼리스트]  (0) 2019.05.26

저자는 로펌에서 사무직으로 일하다가 번역 쪽 관련 프리랜서 일을 하시는 분이 자기가 겪은 일을 

 

직접 그린 그림과 함께 풀어나가는 에세이 형식이다. 

 

처음에 읽을 때는 IT 분야에서 일하는 나와는 거리가 먼 것 같아서 책을 덮을 까 했다가 조금만 더 

 

읽어봐야지 하고 읽었던게 책을 단숨에 읽게 만들었다. 특히나 앞에서 보았던 대놓고 자기계발 서적은 

 

초반에는 매우 흥미롭다가 뒷부분에서 독자들을 이끌고 가는 스토리가 부족해서 어디선가 봄 직한 글들로 이끌어 가는

 

데 반해서 이 책은 끝까지 긴장감을 놓지 않고 볼 수 있게 해주었다. 추가로 저자가 직접 그린 툰 ( 만화? ) 는 

 

이해도와 더불어 페이지 넘기는 재미가 있었다.  

 

게다가 비록 나와는 다른 분야지만 , 인문학 서적의 내용이 두루뭉실하게 적용되는 것처럼 여기서 말하는 내용들은

 

결국 내가 IT 업계에서 프리랜서로 일하더래도 비슷하게 적용되는 내용일 것 같아서 별반 다를 바 없어보인다. 

 

회사 생활을 지속할지 고민하는 분들이 읽어보면 좋을 것 같다. 나 역시도 책 뒷편에 나와있는 몇 가지 이유로 

 

회사 체질은 아닌 것 같고 , 다만 나는 나만의 브랜드를 찾지 못했다. 

 

끝으로 제일 많이 나왔던 문장으로 리뷰를 끝내볼까 한다. 

 

"책임감과 인내심을 갖고 버틴다면 , 시간은  그 모든 경험에서 의미를 만들어 줄 것이다. "

 

 

 

 

임원 출신 저자 조차도 , 퇴직 이후에 자기 생각과는 달라 힘들었으며 , 자기 업무와 관련 없는 부분에서 

 

자기 계발보다는 맡은 분야에서 공부를 더 열심히 해서,  전문화하라고 조언하고 있다. 

 

결국 역설적이게도 , 제목과는 달리 자기 맡은 바 업무에 전문성을 키워서 회사 퇴직 후에도 해당 분야에서

 

전문성을 갖을 수 있게 하라는 것이다. 그리고 전문화의 완성으로 자기 PR 을 말하고 있다. 

 

이전에는 몰랐던 내용으로 이원석 저자의 "거대한 사기극" 이라는 책을 소개하며 자기 계발의 유래에 대해서도

 

설명해 주고 있다. 참고로 이책은 자기 계발이 아닌 자기 전문화를 외치고 있는 책이다. 

 

한 번 읽어보면 좋을 것 같다. 

 

 

저자의 사부이신 오병곤님의 페이스북에서 신간 소개를 듣고 낼름 빌려봤다. 

 

전체적으로 많은 도움이 되는 글들 이었으나 , 뒷부분에는 일정양 퇴직 과는 상관없는 

 

, 저자 자신이 하고 싶은 다른 애기들이 있어서 약간 식상하기도 했고 , 문투가 전체적으로 

 

약간 경직되어져 있어서 말이 늘어진다는 느낌도 받았다.

 

그렇지만 읽을만한 가치는 있었던 것 같다. 

 

헹여나 혹자는 책 제목만 보고 , 퇴직을 부추기는 글이 아닐까 하기도 싶겠지만 이 책은 

 

준비없는 퇴직은 절대 하면 안된다고 책의 여러군데에서 말리고 있다. 

 

한가지 강조하고 싶은 것은 오병곤님 자신도 구본형님의 제자여서 책의 중간중간에 "익숙한 것과의 

 

결별" 이라는 단어가 많이 나온다. 

 

요약을 해보자면 , 퇴직 5년 전부터 자신만의 필살기를 준비해야 된다는 것과 준비되지 않으면 회사를

 

나오면 안된다는 것 , 필살기가 준비되었으면 당당하게 퇴직을 해도 된다고 애기한다. 

 

나도 지금 부터라도 경제적인 독립과 그리고 내가 진짜로 좋아하는게 무엇인지 찾아야 하겠다. ( 그치만서도

 

이미 다른 사람이 생각하는 대로 살고 있는 나는 내 가치를 찾는 것이 너무나도 어렵다. )  

 

추가로 IT 스테디 셀러의 저자가 되거나 블로그나 커뮤니티 등으로 인지도가 있게되면 좋겠고 안되면 

 

학위나 , 기술사 취득을 통해서 나만의 브랜드를 구축하도록 노력해야겠다. 

 

특히나 마음에 드는 부분은 경제적 독립 이후에 , 파트 타임을 하면서 꾸준히 수입을 버는 것이다. 

 

약사 면허를 가진 사람이 파트타임을 하는 것과 , 친한 선배가 프리미엄 독서실을 운영하면서 s/w 회사를 

 

운영할 수 있는 것은 같은 시간을 자유자재로 쓸 수 있기 때문이다. 

 

 

 

 

기록은 50:00.31 역대 최고 기록이다. 

 

수원 경기 마라톤 코스가 경사가 있어서 , 그렇게 녹록치 않다. 

 

하지만 기록이 좋아졌다. 조금만 더 힘냈더라면 49분대도 가능했을 텐데.

 

전체로는 238 / 2267 이다. 10 % 조금 벗어나는 등수이다. 그래도 나중에는

 

10% 안에는 들었으면 좋겠다. 

 

이번에 기록지 좋아진 이유는 , 계단 오르기를 한 것 아마도 호흡을 좀 길게 가져 간 것 

 

마지막으로 같이 달리는 형님이 50분 대에 도전해보라고 한 것 이다. 

 

다음에는 50분 언더로 도전해 봐야지.

 

최근 IT TREND 에 대해서 우물 안 개구리에서 벗어나기 위해 책들을 읽어 보고 있다. 

 

그러다가 우연한 기회에 팟캐스트로 나는 프로그래머다 를 듣게 되었고 , 책으로도 출판이 

 

되어서 읽어보게 되었다. 

 

특히 우리 회사에서도 강조가 되고 있는 알고리즘 편에서 구종만님, 하광성님의 글들을 일고

 

자료구조 & 알고리즘에 대해서 다시 한번 생각해보는 계기가 되었다. 나 역시 코딩에 "알고리즘이

 

왜 필요해? " 라는 생각을 했던 적이 있고 , 지금은 문제 해결 능력 향상에 많은 도움이 된다라는 

 

생각을 가지고 있다. 그렇지만 두 아이의 아빠 , 한 여자의 남편 , 직장일 그리고 건강 유지를 위한 운동 등

 

한 인간으로서 온전히 나를 위해 쓸 수 있는 시간이 갈수록 줄어들고 있어서 이 또한 숙제이기도 하다. 

 

추가로 원래 작은 소망이 주재원으로 해외 생활을 수 년간 해보는 것 이었는 데 , 그것이 좌절된 이 시점에서

 

자력으로 해외 취업을 생각해 볼 수 있게 해주는 해외 취업편도 흥미로운 주제였다. 

 

해당 팟캐스트가 2017년 7월에 막방이었는 데, 너무 늦게 알아버려서 아쉽다. 좀 더 일찍 들었더라면 

 

지금의 나는 달라져 있었으려나 ? 

나는 모바일 폰 개발을 10여년 하다가 , 인공 지능 스피커 업무를 거쳐 현재는 작은 규모의 서버 업무를 하고 있다. 

나이는 40 대 초반, 말로만 듣던 위에서 눌리고 아래에서 기어오르는 것을 몸소 체험하고 있으며,  나의 미래에 대해서 

내 앞에서 놀고 있는 초등학생 짜리 두 자녀를 보며 고민 중이다. 이 어려움을 헤쳐나가기 위해 가능한 IT 관련 에세이나 관련 서적들을 읽어보려고 노력 중이다. 

 

이 책은 2011 년도에 출간되어서 세월이 10 년 조금 못 된 책이지만 , 그렇다고 내용은 절대 뒤쳐지지 않는다. 

 

재미난 것은 임백준님과 박재성님을 제외하고는 전부 기술사를 획득하신 분들이고 임백준님은 번역과 소설 등 에세이등을 통해 나도 이름을 익히 알고있었고 박재성님 또한 자바지기를 통해서 이름이 많이 알려지신 분이고 지금도 강의와 slipp.net을 통해서 이름을 알리고 계신 것으로 알고 있다. 추가로 이춘식님은 데이타베이스 관련 도서로 이름만 알고 있었다. 

 

기술사를 따신 분들에 대해서는 그 분들도 역시 나와 같은 고민을 하다가 기술사란 카드를 뽑아들었고 , 결국 성공해내신 분들이다. 나도 기술사 공부를 시작해야 하나 하는 고민을 하게한 책이다. 왜냐하면 나는 일게 개발자로서 회사 업무외에는 할 줄 아는 것이 극히 적고 , 내세울 것이 적기 때문이다. 그런데 기술사 합격하려면 공부양이 사시 뺨친다고 현재로서는 느끼기 때문에 시작할 엄두를 내지 못하고 있다. 

 

프로그래머로써 , 마인드 전환이 필요하신 분들이 읽어보면 괜찮을 것 같다. 

 

이 중에서 임백준님 소개한 책들을 나도 리마인드 겸 적어본다. 

 

Java Generics and Collections 

Agile Java

Java Concurrency in Practice

Effective java 

Head First Design Patterns

Domain Driven Design 

Refactoring

 

 

 

+ Recent posts