문제

멤버마을 멤버집에 살고 있는 우리 친구 현수는 축구를 너~~무 좋아해요♥

멤버학교에 새로 입학한 신입들을 데리고 축구를 하러 나가려는 찰나!! 멤버마을의 촌장인 미스타 "손"은 피곤한 신입들을 보호하고자 현수를 가로막습니다. 옆에서 지켜보고 있던 멤버마을의 부촌장인 새로운 "손"은 한가지 제안을 합니다. 

 

"마을에 쯔쯔가무시가 돌고 있다. 쥐를 잡아와라. 그렇다면 축구를 허락하겠다!"

축구를 너무 사랑하는 우리 친구 현수를 돕기 위해서 다함께 고양이(CAT)를 한마리 찾아볼까요?

 

입력된 문자열에 C, A, T가 순서대로 들어있다면 "YES"를 출력하고,

순서가 섞여 있거나 혹은 없다면 "NO"를 출력하세요.

 

입력

문자열의 길이는 1~50개이며, 'A' 부터 'Z' 이 이외의 문자는 없다.

 

출력

고양이를 찾으면 "YES"

못찾으면 "NO" 

예제 입력1

XCYAZTX

예제 출력1

YES


예제 입력2

CTA

예제 출력2

NO


예제 입력3

SGHDJHFIOPUFUHCHIOJBHAUINUIT

예제 출력3

YES


예제 입력4

CCCATT

예제 출력4

NO

 

HINT

고양이는 한 마리만 잡읍시다! 사료값 아끼자구요!



[문제 풀이]

순서대로 "CAT"이라는 단어가 순서대로 한 번만 존재해야하지만  "YES"가 출력되는 문제이다.

꼭 붙어있을 필요는 없고, 예제 이력 4를 보면 CAT가 하나 있는 것처럼 볼 수도 있겠지만!

CCCATT, CCCATT, CCCATT, CCCATT, CCCATT, CCCAT로 여러가지의 CAT이 나오므로 출력은 NO라고 볼 수 있다.



[소스코드 설명]

변수 cat은 사용자의 입력이 들어가게 되고, cat2에는 C, A, T일 경우, 그 단어를 받아들이는 임시 변수라고 보면 된다.

그리고 여기서 cat2.find("CAT"); 라는 것을 썼는데, 그것은 C++에서 제공하는 find()함수를 이용하여 cat2에 CAT이 존재하는지를 찾아주는 함수이다.

string::find

CString 개체의 문자열 기준, 좌측에서부터 문자 혹은 문자열을 검색한다.


string::find()를 통하여 원하는 단어나 문장을 검색 후 

그것이 문자열에 있는지 없는지string::npos를 통하여 알 수가 있다.

(string::find()는 찾고자 하는 단어나 문자열이 없으면 string::npos를 리턴한다.)



Posted by 밍쫑
,

알고리즘.........................!!!!!!!!!!


제가 개인적으로 많이 부족한 기술력도 있지만, 학교에서 이론만 배워보고 알고리즘 문제를 접하거나 코딩을 직접 해 본 적이 없는 상태입니다.


현재 알고리즘이 매우 중요하게 된 멤버십에서 저는 완전 멘붕상태였죠..ㅠ


멤버십(이하 멤)에서 내주는 일일 알고리즘 3문제도 하루 반나절을 붙잡아야 풀 수 있는 정도였습니다.

매주 자체적으로 멤에서 매주 토요일마다 2시간동안 3문제를 푸는 '멤고리즘' 대회를 여는데요.

이 시험을 통해 알고리즘 등급이 메겨집니다. 

A~F등급이 있는데...(저희 대전 멤버십 내에서의 등급입니다. 전체멤버십과는 관련 없습니다.)


사실 저는 맨 처음 F등급을 받고, 현재는 D등급까지 올라왔습니다.

이렇게 올라온 것도 기존 회원분들 중에 멤고리즘이나 일일 알고리즘에 참여하지 않으시는 분들이 있기때문에 자동적으로 올라가게 된 것이 아닌가 싶습니다. 물론 한 문제라도 풀 수 있게 된 것도 있지만요!!


결론은 아직도 부족...

알고리즘...저도 정말 잘하고 싶습니다!! 

그런데 당장 어떻게 공부해야 될지도 모르겠어서 답답하기만 하답니다.


그 동안 알고리즘 공부하려고, 쉬운 책도 찾아봤지만...제 수준에 맞는 책이 없습니다!

자료구조 책을 다시보는것도 알고리즘을 잘하는 것에 도움이 되는 것도 한계가 있습니다!

잘하는 사람의 소스코드를 보거나, 설명을 듣는것도 물론 도움이 되지만... 제가 너무 타인에 의존적으로 변해버리더랍니다.

마치 우리가 궁금한 게 있으면 인터넷을 찾아보는 것 처럼요...



어제 급하게 만든 4주간의 공부 계획표를 들고 큰 운영자님과 상담을 했습니다.

'매일 3문제씩 푸는데 6개월 후면 지금보다야 많이 나아져있겠지~!'라는 안일한 생각을 갖고 있던 것을 큰 영자님은 완전  꿰뚫어 보시는거 같았습니다. ㅠㅠㅠ멤버십 합격이 전부가 아닌데 제가 너무 편안하게 있던건 아닌가 반성을 했습니다.


큰 운영자님과 상담에서는


1. 알고리즘 3문제를 푸는 것을 2시간을 잡고, 다른 사람한테 물어보거나 말하지 않고 집중력 있게 하기!

2. 질문이 있을 때에는 바로 옆에 물어볼 사람이 있다하더라도 첨삭 게시판의 글을 올리고 리플 달아달라하기!

(즉, 바로바로 물어보지말고 좀 더 혼자 생각하는 시간을 많이 가지라는 의미이기도 하지요)

3. 알고리즘 문제들을 풀기만 하지않고, 문제를 풀면서 분류하기!

(이진수, 배열 등으로 문제들을 분류해놓고 나중에 같은 분류의 문제들을 비교하면서 내가 어느 부분에서 못 푸는지 확인)

4. 시험 볼때에도 '오늘은 몇 점을 받아야지!' 라던가 '오늘은 몇 개를 풀어야지!' 라는 목표를 갖고 임하기!

5. 목표 등급은 B!!


이라는 결론을 받아왔습니다..ㅎㅎ


당장은 잘 하기 힘들거라고 생각합니다. 하지만 빠르게 성장해야죠!

꼭 6개월 안에 A!! B!! 상위권으로 갈 거라고 믿습니다 ㅎㅎ



혹시나 멤버십을 준비하시는 분들이 계시다면

알고리즘 공부도 틈틈히 열심히 하시길 바랍니다.


개인적으로 추천드리는 사이트는

알고스팟 : www.algospot.com/

(알고스팟은 유명한 사이트이지만, 가끔 영어 문제도 나와서 해석해야된다는 단점(?)이 있습니다.)

dovelet : www.dovelet.com/

(dovelet의 경우 모든 문제가 한글로 번역되어 있지만, 3단계까지는 무료이고, 그 이후부터는 유료인 단점(?)이 있습니다.)


Posted by 밍쫑
,

SIG?

대전 SSM 24-1기 2014. 3. 9. 18:16

삼성소프트웨어멤버십에서는 1인당 1 SIG 이상을 들어야 되는데요.

SIG의 개념은 동아리? 인원 수가 많은 스터디 그룹? 이라고 생각하면 됩니다.


저희 대전멤버십에서는 현재 멀티미디어 시그, 웹 시그, AI 시그, 임베디드 시그, 알고리즘 시그 같은 주 시그(학술)가 있고, 볼링 시그라고 부시그가 있습니다. (현재 산책 시그라고 부시그가 만들어질 예정입니다.)


부시그의 경우 주 시그 중 하나는 꼭 들어야만 들어갈 수 있습니다.

그리고 시그는 6인 이상이면 운영자님께 허락받은 후에 만들 수 있습니다.


저는 이번에 "멀티미디어 시그"와 "볼링 시그"에 들어갔습니다.



저희 멀티미디어 시그는
"일상적으로 접하는 멀티미디어에 대한 심화학습을 위한
                 라이브러리 도구를 활용하는 방법에 대해 학습하는 시그
"  입니다.

OpenGL과 OpenCV에 대하여 간단한 프로그래밍을 통해 학습을 하고 있습니다.



시그는 꼭 하나만 들 필요는 없습니다. 본인이 감당만 할 수 있다면 여러 개의 주 시그를 동시에 들어갈 수도 있고,
저처럼 주시그 하나, 부시그 하나 들어갈 수 있습니다.


(여담인데 제가 개인적으로 산책을 좋아하는데, 이번 단기 때 동기들 중에 산책을 좋아하시는 분들이 있더라고요. 

그래서 예비 산책 시그장님이 산책 시그를 실제로 만드실 계획이십니다. 만약 산책 시그가 만들어지면 저는 당연히 들어가려고요ㅋㅋ 그러면 주 시그 1개, 부 시그 2개가 되겠죠?

혹시나 실제로 산책 시그가 만들어졌고, 이 글을 보신 분 중에 후에 대전 멤버십에 들어오시는 분이 계시면 그 때 
같이 산책 나갑시다!ㅋㅋㅋㅋ)



현재 단기가 끝나고 이제 막 신입들이 각자 원하는 시그에 들어가 활동을 시작하는 단계인데요.
앞으로 시그 활동과 개인공부를 통해 기존회원분들 뿐만 아니라 신입회원들이 몇 달 후에 얼마나 많이 발전했을 지
미래가 궁금해지네요. 물론 제 자신도 어떻게 바껴있을지 매우 기대가 됩니다.


힘들게 이곳에 들어왔고, 다른 분야도 알면서 공부할 수 있는 이 좋은 기회를 잘 활용해야죠 ㅎㅎ

Posted by 밍쫑
,

2014년 2월 3일 ~ 2월 28일

약 한 달동안의 단기 집중 교육이 무사히 끝났습니다.


한 달이라는 시간이 누구에게는 짧은 시간이였을 수도, 길었던 시간이였을 수도 있습니다.

저에게 이번 단기 교육은 하루하루를 보면 길었지만, 한 달 전체를 보면 짧았던 시간이 아니였나 싶습니다.


학교다닐 때 아무리 과제가 많아도 몇 일 연속으로 하루에 잠을 한 두시간 자면서 보냈던 적이 없으니까요.


하루를 24시간이 아닌 30시간인 것처럼 보내고, 뭔가 해야할 것도 많고, 

다른 사람과 비교해서 내가 얼마나 부족한 사람인지 느끼게되는 시간이다보니 스트레스도 많이 받았었습니다.


<개인기술세미나>(이하 개기세)라는 것이 있는데, 본인이 갖고 있는 기술과 지원작품을 설명하는 시간이 있습니다.

말이 설명하는 것이지 실제로는 본인을 어필하는 시간이라고 보시면 됩니다.

발표 30분 + 질문 20분(발표 20분 + 질문 30분) = 총 50분 동안 발표를 해야됩니다.


저는 개기세라는 것이 있고 한 번씩 꼭 해야된다는 사실을 알고 정말 걱정이 많았습니다.

처음 멤버십에 들어올 때도 제 실력이 어떤지 알기에 들어오고나서도 불안했고,

동기끼리 기술적인 것들을 말할때도 못알아 듣는 경우도 있었고요.


저의 개기세 결론부터 말하자면...

정말 개망이였습니다ㅋㅋㅋㅋㅋㅋ..

제 밑바닥을 많은 사람들에게, 그것도 어느정도 실력이 있다하는 사람들에게 보였다는 사실이 너무나 창피했습니다.

발표 준비도 시간 채우려고, 보고 또 보고 동영상도 찍어서 편집하고 열심히 준비한다고 했는데

정말 20분도 안되서 끝났습니다...


정말 매일 하루도 빠지지 않고

'내가 왜 뽑혔지?' 라는 생각을 수도 없이 했었습니다.

운영자님들은 그에 대한 대답은 '뽑을 만 하니까 뽑았지! 자신감을 가져!' 라고 말씀해주셨습니다.


솔직히 단기가 끝난 지금도 저 생각은 계속 되고 있습니다.

하지만 처음 저 생각을 할 때와 다른 점이 있다면, '그래! 뽑힐만 하니까 뽑았지! 실력은 공부하고 노력해서 채우자!' 라는 생각을 갖게 되었습니다.


이미 시작된 멤버십 생활!

1년 반동안 위축되있을 수만은 없는 거 아니겠습니까!

어차피 저같은 경우에는 4학년 2학기까지 모두 마쳐서 휴학한 상태이기때문에 멤버십에서 수료할 때까지 지낼 예정인데요.

수업도 없겠다. 공부하고 과제만 하면은 어느정도 따라잡을 수 있지 않을까요?ㅎㅎ


그리고 단기 기간동안 <단기과제>를 진행하게 되는데요.

저희 기수의 경우 한 달 반동안 진행하게 되서 현재 단기는 끝났지만 3월 말까지 단기 과제를 진행한답니다.

단기과제 자체도 아이디어를 짜내는데 정말 힘들었습니다. 

단기과제 끝나고 들어가야 할 <창의과제> 아이디어도 어떤 걸 내야할지 벌써부터 걱정되네요 ㅋㅋㅋ

아! 참고로 단기과제에서 괜찮은 주제의 경우 창의과제로 연계가 가능합니다. 즉, 힘들게 아이디어를 또 낼 필요도 없고 남들보다 프로젝트가 빨리 끝나서 여유로울 수 있다는 장점이 있습니다.


여러분들도 평소 아이디어같은게 있으면 그냥 흘려보내지말고 어디에 적어두는 습관을 들여두시는게 좋습니다.

좋든 나쁘든 나중에 조합하다보면 좋은 아이디어가 나올 수도 있으니까요.


아이디어하니까 생각난건데, 처음 단기가 시작되고 바로 <OT>준비를 하는데요.

OT때 팀파워라고 전국 신입 멤버십이 모인 OT에서 각 멤버십 별로 장기자랑을 하는데, 

여기서도 참신한 아이디어가 필요하답니다ㅋㅋㅋ

그래도 무엇을 하든 과정은 힘들지만 결과는 뿌듯하고 개운한거아니겠습니까~

저희도 비록 상은 받지 못했지만 끝나고 나서 그 때 찍은 동영상 보면서 추억 회상하듯 좋았습니다.


예비 멤버십 회원분들도 이 때 좋은 추억을 남기셨으면 좋겠습니다~ㅋㅋㅋ


이 밖에도 <세미나>, <체육활동>, <게임대회>, <AI대회>, <천문대가기>가 있는데요.

세미나는 전문가분이 오셔서 5일 동안하는 전문가 교육이 있고, 

한 달동안 기존 회원분들이 돌아가면서 다양한 분야의 세미나를 해주십니다.

전문가 교육 내용은 제 블로그에도 포스팅 해놓긴 했지만..저도 너무 어려워서 제대로 포스팅은 못했답니다.

그래도 참고는 할 정도?ㅎㅎ

체육활동, 게임대회, AI대회, 천문대가기 등 되게 재밌고 좋은 활동도 많았습니다.


Posted by 밍쫑
,