알고리즘 공부는 어디에서 시작해서 어디까지 해야 할까요? 이 알고리즘 공부라는 것의 범위를 세상의 모든 알고리즘으로 정의해 버린다면, 사람들이 저마다 부르는 알고리즘이라고 불리는 공부의 내용도 모두 동일한 범위로 규정되겠지만, 인생에서 시간은 한정되어 있기 때문에, 공부에도 선택과 집중이 필요합니다. 그래서 알고리즘 공부를 시작하기에 앞서, 내가 알고리즘을 공부하려고 하는 목적을 잘 파악하고 이에 맞게 효율적으로 공부해야 한다. 학교에서 배우는 알고리즘 -> 자료구조와 알고리즘의 원리 이해 업무에 사용하기 위한 알고리즘 -> 자료구조/알고리즘 이해 및 각 언어의 알고리즘 라이브러리 특징의 이해 인터뷰를 위한 알고리즘 -> 알고리즘의 응용 및 응용한 애플리케이션 로직 구현 대회를 위한 알고리즘 -> 알고리..
백준 온라인 저지(BOJ) 알고리즘 문제 다른 사람의 정답 코드 보는 방법입니다. 1. 먼저 문제를 풀어서 맞춰야 합니다. -> 직접 안풀어도 됩니다. 구글에서 검색해서 답을 찾으세요. 다른 언어로 해도 상관 없습니다. 예를들면, '백준 15649 피보나치' 이런 식으로 검색하세요. 2. 메뉴 중 [채점 현황]으로 진입합니다. 3. 표를 잘 보시면 왼쪽에서 다섯 번째 칼럼이 '언어'입니다. 그 칼럼의 '언어 이름'을 클릭하시면 됩니다. -> 클릭할 수 없도록 비활성화되어있다면, 아직 문제를 풀어서 맞추지 않았기 때문입니다.(1번 참고) 알고리즘 공부를 처음 시작하는 사람은 코드 플러스 '알고리즘 기초' 강의를 수강하시길 강력히 추천합니다. 기초강의는 기초 1과 기초 2로 구성되어 있는데, 기초세트를 선택..
코드플러스 백준 알고리즘 강의 중급과 고급을 수강하고 작성한 개인적인 후기입니다. 강의의 개요를 파악할 수 있도록 강의의 모든 목차가 기록되어 있습니다만, 강의 저작권을 고려하여 강의 내용은 제가 필기한 부분 중 일부분만 포함되어 있습니다. 알고리즘 관련 공부를 처음하신다면, '기초'강의 부터 수강하시기를 강추 드립니다. 만약 자료구조/알고리즘 수업을 꽤 재미있게 들어서 기초강의에 있는 스택/큐/그래프 등의 내용을 다 숙지하고 있으며, 실력에 자신 있다고 하더라도, 이런 종류의 문제에 접근하는 방법과 팁을 효율적으로 학습하기 위해 기초강의 부터 차근차근 수강하는것을 강추드립니다. 오히려 중급을 듣다가 모르는 부분을 찾아보고 이렇게 하는것은 시간 낭비입니다. 시간은 돈입니다 :) 저는 '중급 셋트+고급으로..
PRACTICE MAKES PERFECT 라는 멋진 이름을 가진 사이트에서 준비 이 사이트에서 다음과 같은 분야의 면접을 모두 모의로 볼수있다. 내가 시간을 예약하고, 다른 사람도 예약하면 위의 그림에서 보이는 플랫폼에서 30분씩 돌아가면서 인터뷰를 해주게 된다. 알고리즘 뿐만 아니라 다양한 분야의 문제가 되어있기 때문에 도움이 많이 된다. 내가 예약하면 내꺼는 문제만/ 상대방문제는 해답만 나한테 메일로 온다. 상대방은 그 반대.. 즉, 본인꺼는 문제만 아는 상태에서 인터뷰에 들어가고, 상대방꺼는 답을 알고 있는 상태에서 들어가서 인터뷰를 봐주게 되는 것이다. 아래와같은 타임슬롯을 누르기만 하면 예약된다. 초록색, 노란색 이런게 나와 레벨이 잘 맞는 상대가 이미 예약을 했다는 것을 나타내주니 고려해서 예..
리트코드 스터디플랜 - 알고리즘 편을 들어다 보자. 이 스터디 플랜은 총 14일동안 진행되는것으로 구성되어 있고, 매일매일 2~3문제를 풀어야 해서 만만치 않은것 같다. 개인적인 느낌으로는 풀타임 잡으로 느껴질 정도... ^^; 그래도 직장인은 휴가를, 학생분들은 방학을 이용하면 어느정도 진행할 수 있는 수준의 난이도가 될것 같다. 초반에는 이지로 구성되지만 중후반부에는 미디엄도 더러 등장한다. 바이너리 서치와 투포인터로 시작하는 이 과정을 잘 끝내고 나면 알고리즘은 척척 풀수 있을것 같긴 하다. 역시 리트코드! 문제풀이:
나는 어떻게 알고리즘 공부를 했을까? - 최백준 님 가끔씩 다시 봐도 참 좋은 자료라고 생각됩니다. 제가 중요하다고 생각하는 부분만 캡쳐해보았습니다. 글 하단의 링크를 클릭하면, 최백준님의 전체 발표자료를 볼 수 있습니다. 영어 - 초등학교 5학년 때 처음 영어를 배웠습니다. - 영어 문법은 중학교 3학년 때 배우기 시작했고요 - 토익을 준비했습니다 - 그래서 토익을 대비하는 학원을 다녔습니다 - 그런데 영어는 아직도 못해요 ㅋㅋㅋ - 다른 길을 찾아보고 싶은데, 영어는 해야해요 - 그래서 아직도 영어 공부를 해요 언제보다 중요한건 어떻게 알고리즘 공부하기 - 알고리즘을 아는 것도 중요하지만 구현해보는 것도 중요 - 내가 제대로 구현했는지 확인해봐야함 - 사실 알고리즘은 어떤 문제를 푸는 과정이라서 - ..
910 - 문자열 알고리즘 1 문자열 매칭 알고리즘 KMP, 라빈 카프, 해싱, 트라이, 아호 코라식에 대해서 알아봅니다. 1500 - 문자열 알고리즘 2 접미사 배열을 활용한 문제들을 해결해봅니다. ● 백준 코드플러스 알고리즘 강의 후기 - 중급2 - 문자열 알고리즘 1 강의: KMP 문자열 검색 알고리즘 문자열 S에서 패턴 P를 찾는 알고리즘 S에서 가장 먼저 나타나는 P 혹은 모든 P를 찾는 문제이다. 방법1. 모든 경우를 다 해볼경우 O(|S|X|P|) 234로 바뀔때, 23은 간단히 계산하여 치환하고, 4만 더하면 된다. 소수 127을 이용하여 mod연산을 시켜준다. 라빈 카프를 구현할 때는 진법과 소수를 잘 정해서 비교가 최소로 일어나게 구현해야 한다. 이것저것 해보면서, 문제마다 가장 좋은 ..
백준/BOJ/코드플러스/알고리즘강의 참고: 강의수강 하지 않았습니다. 잘못된 내용이나, 더 좋은 방법이 있으면 알려주시면 감사하겠습니다. 500 - 브루트 포스 일곱 난쟁이 사탕 게임 날짜 계산 리모컨 테트로미노 카잉 달력 수 이어 쓰기 1 1, 2, 3 더하기 510 - 브루트 포스 (N과 M) N과 M (1) N과 M (2) N과 M (3) N과 M (4) N과 M (5) N과 M (6) N과 M (7) N과 M (8) N과 M (9) N과 M (10) N과 M (11) N과 M (12) 520 - 브루트 포스 - 순열 다음 순열 이전 순열 모든 순열 차이를 최대로 외판원 순회 2 로또 530 - 브루트 포스 - 재귀 1, 2, 3 더하기 암호 만들기 퇴사 스타트와 링크 링크와 스타트 부등호 맞춰봐 ..
백준 알고리즘 기초 강의 후기 - 기초1은 여기에서 보실 수 있습니다. https://inner-game.tistory.com/256 백준 알고리즘 강의 후기(코드플러스): 기초1 알고리즘 기초 1/2 프로그래밍 언어 (C++, Java)를 할 줄 알고, 기초 알고리즘을 배우는 강의입니다. 전체 강의 구성은 https://code.plus/notice/16 를 참고해주세요. 알고리즘 기초1 강의 링크: https://code.. inner-game.tistory.com 백준 코드플러스 알고리즘 강의 기초2 개요 알고리즘 기초2 강의 후기입니다. 코드플러스의 전체 강의 구성은 https://code.plus/notice/16 를 참고해주세요. 알고리즘 기초2 강의 구성은 https://code.plus/c..
알고리즘 기초 1/2 프로그래밍 언어 (C++, Java)를 할 줄 알고, 기초 알고리즘을 배우는 강의입니다. 전체 강의 구성은 https://code.plus/notice/16 를 참고해주세요. 알고리즘 기초1 강의 링크: https://code.plus/course/41 ● 100 - 알고리즘 시작 먼저, 알고리즘이 무엇인지, 어떻게 공부하는 것이 좋은지 알아봅니다. 그 다음으로 알고리즘의 효율성을 측정하는 방법 중 하나인 시간 복잡도에 대해서 배워봅니다. 내용을쓰세요 이 강의('알고리즘 시작')는 정말 좋은 강의이기 때문에 꼭 들으셔야 합니다. 구) 알고리즘 기초 : 맛보기 강의 - 정리 알고리즘: 알고리즘이란 어떤 문제를 해결하기 위한 여러 동작들의 모임 알고리즘 공부에 가장 효과적인 방법 -> ..
리트코드에 공식 큐레이팅 된 코딩 인터뷰에 자주 출제되는 문제의 목록입니다. 인터뷰 준비를 하는데 있어서, 모든 문제를 훑어 보실것을 강력 추천 합니다. 깊고 느리게, 우보만리 우직한 소처럼 천천히 걸어서 만리를 간다. 천천히 가더라도 끝까지 목표를 이룬다. Introduction This is LeetCode's official curated list of Top classic interview questions to help you land your dream job. Our top interview questions are divided into the following series: 이것은 LeetCode의 공식 큐레이팅 된 Top 클래식 인터뷰 질문 목록입니다. 우리의 주요 인터뷰 질문은 다음 ..
백준/BOJ/코드플러스/알고리즘 강의 후기 1/2 1강 ● 1300 - 다이나믹 프로그래밍 3 알약 욕심쟁이 판다 내리막 길 가장 큰 정사각형 1, 2, 3 더하기 7 1, 2, 3 더하기 9 고층 빌딩 홍준이의 친위대 : 여기까지 2강 좋아하는 배열 : 여기부터 3강 방법을 출력하지 않는 숫자 맞추기 숫자 맞추기 자물쇠 알약 한조각 F, 반조각 F 반조각: (F, H) -> (F-1, H+1) 한조각: (F, H) -> (F, H-1) 초기값은 D[0][0] = 1
인터뷰를 위한 알고리즘 공부는 책 딱 한권만 있으면 완성된다. 게리 라크만 맥도웰이라는 사람이 쓴 크래킹 더 코딩 인터뷰 라는 책인데, 진짜 소프트웨어 엔지니어 인터뷰의 모든것이 포함되어 있다. 무려 한국어로 된 번역서적도 있다. 정보는 포스트 맨 아래에 첨부하였다. 코딩 인터뷰 완전 분석 국내도서 저자 : 게일 라크만 맥도웰(Gayle Laakmann McDowell) / 이창현역 출판 : 인사이트 2017.08.14 상세보기
첫번째 원칙, 알고리즘을 아주 소중하게 여긴다. 이 말이 무슨말이냐면, 알고리즘 책이나 영상을 하나 정해놓고 자기만의 노트를 만들면서 공부를 해나가는데, 이걸 아주 소중히 다뤄야해요. 초등학교 때, 병아리 처음 샀을때처럼 계속 잘 있는지 계속 들여다 봐야한다. 그게 첫번째 걸음이다.. 내가 처음 봤던 책은 이 책인데, 대학교 1학년인가 2학년때 배웠던 걸로 기억한다. 책에서 가장 마음에 들었던 것은, 이 책에서 제공하는 CD에 알고리즘 애니메이션이 들어있었다는 점이다. 그래서 하노이의 탑 같은 문제들을 애니메이션을 여러번 돌려보면서 그 원리를 쉽게 파악할 수 있었다. 그리고 링크드리스트 의 삽입 삭제 같은것들도 모두 이렇게 코드와 상관없이 일단 애니메이션 만 봐도 이해를 할 수 있고, 이해를 해야한다. ..
알고리즘 공부는 이 세상의 공부중에 진짜 쉬운편에 속하는 공부라고 생각한다. 알고리즘의 원리를 이해하고 그걸 코드로 쓸수 있으면 끝. '알고리즘'이라고 인간이 부를수 있는것들은 어차피 인간이 이해할수 있는 수준이어야만 알고리즘이라고 정의할 수 있고 '코드'로 쓰는 과정에서도 어차피 제약사항이 있기때문에 제약사항들을 추가하고 나면 풀어내는건 어렵지 않다. 알고리즘 스터디를 할때, 문제 다 풀어오라고 하는데, 문제도 안풀고 그냥 와서는 바로 이해하려고 하는 사람들이 있다. 그런사람들이 태어날때부터 천재였다면 내가 할말이 없지만.. 그렇게 될수는 없다고 생각한다... 그렇기 때문에 알고리즘 문제가 논리적으로 어떻게 풀어질지를 이해하고, 자신이 사용하는 언어로 풀어낸다는 것은 당연히 예습, 즉, 준비가 필요한 ..
F-O-1-1 https://leetcode.com/problems/number-of-days-between-two-dates/ Number of Days Between Two Dates - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com sol1 55 function daysBetweenDates(date1: string, date2: string): number { let msA = Date.parse(date1); let msB = Date.parse(dat..