strlen은 의 헤더 파일 안에 있는 함수로써(c++일 경우 cstring) const char* 타입의 문자열을 받아서 해당 문자열의 길이를 반환하는 함수입니다. 여기서 문자열의 길이라고 하는 것은 문자열을 구성하는 문자의 개수를 의미하며 문자열 마지막에 붙어 있는 종료 NULL문자인 \0을 제외한 문자 개수입니다. (공백 포함) 위와 같이 10의 크기를 가진 배열안에 있는 Hello라는 문자열은 5의 길이를 리턴하게 됩니다. strlen 함수 형식 size_t strlen(const char *str); 인자값 : const char* 타입의 문자열 리턴값 : 문자열의 길이(양수) ※ size_t는 해당 시스템에서 어떤 객체나 값이 포함할 수 있는 최대 크기의 데이터를 표현하는 타입으로 반드시 un..
문자열을 입력받을 때 gets, puts 함수는 문자열 입출력 함수입니다. gets는 문자열을 입력받고 puts는 문자열을 출력할 때 쓰이는 함수입니다. 특히 gets나 puts를 사용하면 Enter단위로 문자열을 입력받기때문에 한줄씩 입력받을 수 있습니다. gets 함수 사용법 gets(str); str : 입력받을 문자형 배열 gets는 문자열을 입력을 받는 함수입니다. 문자열만 입력받을 수 있고, 개행을 기준으로 입력받습니다. 작동방식은 사용자로부터 문자열을 입력받아 함수의 인자로 명시한 주소의 메모리에 저장한 뒤 입출력 버퍼가 비어있는지 확인하고 비어있다면 문자 혹은 문자열을 입력받아 입출력 버퍼에 저장합니다. ※ 최근에는 gets대신에 gets_s를 사용하라고 권장하는 추세입니다. gets는 버..
문자열을 scanf()함수로 입력을 받게 된다면 공백도 하나의 문자로 인식하여 같이 입력을 받게 됩니다. 입력시 공백(space)를 무시하고 싶다면 " %c" 이런식으로 한글자를 띄워서 명시해주셔야 합니다. scanf 함수 char형 문자 입력 시 공백 무시하기 #include int main() { //배열 char arr[10]; //입력 //입력값 a b c d e f g h i j for(int i=0;i
scanf()는 기본적으로 공백(space)이나 개행(enter)을 기준으로 입력을 받기에 공백이나 개행 없이 한 줄로 쭉 입력을 한다면 입력이 정상적으로 이루어지지 않습니다. 하지만 scanf("%1d",&temp)와 같이 %1d를 사용하면 붙어있어도 한 번에 한 개씩 입력받을 수 있습니다. scanf 함수 정수 한글자씩 입력받기 #include int main() { //배열 int arr[10]; //입력 //입력값 : 0123456789 for(int i=0;i
2020년 8월 24일 총 8주간의 알고리즘 잡스의 몰입캠프가 종료되었다. 두달이라는 짧은시간 동안 내 나름대로 유의미한 성장을 이루었다고 생각된다. 예전에는 엄두도 못내는 문제들도 어떻게 접근해야 하는지 알게되었고 풀 수 있게 되었다. 물론 지금 내 실력으로 명문높은 기업들의 코딩테스트에 단번에 합격할 수 있다 장담은 못하지만 나는 애초부터 알고리즘 잡스를 수강할때 기업의 코딩테스트에 통과하자라기보다는 그냥 순수하게 알고리즘 자체를 잘 하고 싶어 수강을 한 케이스기 때문에 나의 초기 목적은 완벽하게 이루었다고 생각한다. 8주라는 시간동안 확실히 혼자하는것보다는 높은 성과를 얻어낸것 같다. ※ 혹시나 이 글을 보고 알고리즘 잡스의 몰입캠프의 수강을 고민하고 있는 사람이 있다면 추천하고 싶다. 1. 알고리..
금일 특강의 주제는 이때까지 진행했었던 알고리즘 문제를 같이 풀어보는것이 아닌 면접 스킬에 대한 강의였다. 알고리즘 잡스 대표님께서 삼성에서 면접관으로 수행하셨던 경험이 있으셔서 면접관으로 있었던 썰 듣는게 재미있었다. 면접의 포인트 3가지 기업의 인재상 1. 열정 2. 창의혁신 3. 인간미, 도덕성 기업의 규모가 크면 클 수록 기업의 인재상에 대해 매우 구체화 하고 회사의 임직원들에게 해당 기업의 인재상을 적절하게 주입시키려고 노력한다. 예를들어 삼성의 인재상은 위와 같은데 어떠한 인재를 뽑아야 할것인가를 기준으로 하고 뽑기에 기업의 인재상과 나를 일치시키려고 노력하자 2. 자기소개와 마지막으로 하고 싶은 말 신입일 경우 패기있고 열정적인 말투가 필요 마지막으로 하고싶은말이 없다 -> 열정이 없어보임 ..
지금까지 배운 내용들을 복습한다는 생각으로 단계별로 못 풀고 지나쳤던 문제들을 다 풀어나가고 있다. 이 문제들을 처음 접할 때는 어렵다고 느꼈었는데 지금 다시 풀어보니 가볍게 풀리는 문제들이 많아서 자신감이 생긴다. 알고리즘 잡스를 시작하고 나서 실력이 많이 향상되었음을 느낀다. 예전에는 어떻게 풀어야 할지 감이 잡히지 않는 문제들도 어떻게 해결해야 하는지 알게 되었으며 문제도 풀어나가고 있다. 새로운 과정 추가 학습과정이라는 새로운 과정이 개설되었다. 일단 내 계획은 지금까지 못 풀었던 문제들을 전부 다 Clear하고 추가 학습과정으로 넘어가는 것을 목표로 하고 있다. 요즘은 특별한 일 없이 계속 알고리즘 문제만 풀고 매주 목요일 시험치고 이 패턴을 계속 반복하고 있어 포스팅할 내용이 딱히 없다. 알고..
알고리즘 잡스에서의 커리큘럼은 크게 3가지 구성되어 있다. 1. 프로그래밍 언어 (if문 for문 배열등등) 2. 자료구조 (자료를 어떻게 저장할 것인가?) 3. 알고리즘 (저장되어 있는 자료들을 활용하여 의미 있는 결과를 만드는 법) Part1 프로그래밍 언어 레벨 1 ~ 레벨 10까지는 프로그래밍 공부한다. 기초적인 배열, 함수, 정렬, 재귀 함수의 활용과 시간 복잡도, 이진 탐색까지 배운다. 거의 1주일 만에 여기까지 진도를 나간 것 같다. 진도가 나가는 속도가 굉장히 빠르기 때문에 만약 알고리즘 잡스 학원을 올 생각이 있다면 기초적인 프로그래밍 언어의 활용 정도는 배우고 오는 것이 좋을 듯하다. Part2 자료구조 레벨 11 ~ 레벨 14까지는 그래프를 제외한 스택, 큐, 트리, 힙 등의 자료구조..
8/1 토요일 오늘 특강에서 풀 문제는 밀렵 꾼이라는 문제이다. 밀렵꾼이라는 문제는 지정된 맵 안에 다수의 멧돼지들이 움직이고 있고 손전등을 확인하여 눈앞에 있는 멧돼지들을 포획하고 여러 번 이 동작을 반복하였을 때 잡은 멧돼지들의 무게의 합을 구하는 문제이다. 코치님이 삼성 입사 문제로 나왔던 문제라고 하니 이 정도 문제만 쉽게 풀 수 있다면 알고리즘을 어느 정도 준비가 되었구나 하는 기준이 될 수 있다고 하셨다. 입력값으로 멧돼지들의 위치와 움직이는 방향, 달리는 속력, 돼지의 무게가 주어지고 만약 같은 격자 안에 2마리 이상의 멧돼지가 있을 경우 가장 무게가 많이 나가는 멧돼지가 다른 멧돼지를 잡아먹는다는 옵션도 있다. 문제만 들어서는 그렇게 난이도가 있는 문제인것 같지는 않았지만 문제의 제한시간이..
7/25 토요일 이번 주 토요일에도 대표님 특강이 있었기에 저번 주와 마찬가지로 알고리즘 책을 받고 문제를 어떻게 풀지 설계를 30분간 진행하였다. 알고리즘 책은 위와 같이 생겼다. 공기청정기 문제 풀이 오늘 특강 시간에 풀어 볼 문제는 공기청정기라는 문제이다. 이번 문제는 다소 난해하여 어떠한 문제인지 파악하는데만 오랜시간이 걸렸다. 문제의 핵심 부분만 발췌하자면 위와 같다. 오늘 풀어 볼 공기청정기라는 문제를 간략히 설명하자면 2차원 공간에 공기청정기가 있고 그 공기청정기에서 매 초마다 위쪽으로는 시계방향 아래쪽으로는 반시계 방향으로특정 조건을 만족하면 신선한 공기가 확산이 되어 공기의 상태가 변하게 된다. 이렇게 바뀐 공기의 상태값을 기반으로 입력받은 N초 뒤의 모든 공기 상태 값의 총합을 구하는 ..
7/18 토요일 알고리즘 잡스를 시작한 지 2주일이 되었다. 지난주 토요일 하루만 특별히 알고리즘 잡스 대표님의 특강이 있는 줄 알았는데 알고 보니 매주 토요일마다 특강이 진행되는 듯하다. 오늘도 지난주와 마찬가지로 알고리즘 잡스 대표님의 특강이 있다고 한다. 알고리즘 책을 받고 설계 30분을 한 뒤 온라인 특강을 시작하였다. 특강의 내용은 저번 주와 마찬가지로 문제가 주어졌을 때 어떻게 문제에 접근을 하고, 설계를 하고 풀이를 하는지에 대한 설명이었다. 이번 주 특강 문제는 "회전 탑"이라는 문제이고 저번 주 문제였던 "회전판과 로봇"처럼 다양한 알고리즘이 한 군데 혼합되어있는 문제였다. 손진호 대표님은 이 문제를 풀기 위해서는 한 문제를 여러 개의 문제로 쪼개서 보는 능력을 키워야 한다고 강조하셨다...
7/11 토요일 알고리즘 잡스를 시작한 지 오늘로 꼭 1주일 되는 날이다. 오늘은 알고리즘잡스 대표님의 특강이 있다고 한다. 특강 이전에 알고리즘 책도 주셨다. 알고리즘 잡스에서 만든 알고리즘 책이었는데 안에 내용이 괜찮아 보여 실제로 책을 시중에 낸다 해도 나름 잘 팔릴 거 같은 느낌을 받았다. 특강 방식은 YouTube를 통한 원격 강의였다. 온라인 강의를 많이 본 적이 있기에 나는 오프라인 강의보다 오히려 이러한 강의 방식이 더 귀에 잘 들어오는 것 같다. 가끔씩 이렇게 특강이 있을 듯하다. 특강의 내용은 "회전판과 로봇"이라는 문제를 푸는 것인데 대표님이 문제를 어떻게 접근하는지, 설계를 어떻게 할 것인가와 어떠한 알고리즘이 필요한지, 필요한 알고리즘은 어떻게 구현할 것인지에 대한 설명을 해주셨다..
정말 오래간만에 공부다운 공부를 하고 있는 것 같다. 딱히 특정 기업에 취업하고 싶다기보다는 그냥 순수하게 알고리즘 자체를 잘하고 또 인정받고싶다. 아직 눈의 띄게 성장한 부분은 없다. 공부를 시작한 지 얼마 되지 않았기도 하고 나에게 알고리즘에 대한 절대적인 공부의 양이 부족하기 때문이다. 부족한 실력을 늘리기 위해 공부의 양을 늘렸다. 공부 시간을 늘릴 수밖에 없었던 것이 개인별로 7/11일 토요일까지 Lv7까지 진도를 나가는 것으로 예정이 되어 있었기에 어떻게든 따라갔어야 했다. 월요일 Lv4에 머물러 있었지만 화요일, 수요일을 활용하여 Lv6까지 먼저 예습을 해왔다. 이대로라면 토요일까지 Lv7까지 나가는 진도에 대한 걱정은 안 해도 될 것 같다. 알고리즘 잡스에서는 매주 목요일, 토요일마다 시험..