공부 6

종만북 3단원 코딩과 디버깅 내용 정리

안녕하세요 개발자 도도 입니다 종만북 1회독 해보기 세 번째 시간입니다 ㅎㅎ 이번 시간에는 3단원 내용을 정리해볼까 합니다 시작해보겠습니다! 3단원의 내용도 마찬가지로 실질적인 알고리즘 해결이라기 보단 원론적에 가까운 내용이었습니다 좋은 코드를 짜기 위한 원칙 일반적으로 알고리즘 시험 혹은 대회들에서 사용 되는 코드들은 기존에 쓰던 여러 알고리즘 들의 복붙 형태 혹은 스파게티 코드라고 생각 할 수 있으나, 오히려 간결하고 숙련된 코드가 많다고 합니다 그런 스파게티 코드들이 결정적인 실수를 하게 만드는 요인이니 어쩌면 당연하다고도 할 수 있겠네요 현업에서도 마찬가지겠지만, 코딩 대회 혹은 시험을 대비한 상황에서도 좋은 코드를 짜는 건 필수 일 것입니다 1) 간결한 코드를 짜기 코드가 간결하면 할 수록 휴먼..

종만북 2단원 문제 해결 개관 내용 정리 2

안녕하세요 개발자 도도 입니다 종만북 1회독 해보기 두 번째 시간입니다 ㅎㅎ 2단원 내용 중 마무리 못 지은 나머지 부분을 정리해볼까 합니다 시작해보겠습니다! 문제 해결 전략 직관과 체계적인 접근 사실 직관적으로 풀고자 하는 문제에 대한 해결 방법이 바로 떠오르는 직관이 있다면 따로 공부를 할 필요가 없겠지만, 대다수 그렇지 않은 경우에는 차근 차근 하나씩 공부를 해나가는 방법 밖에 없다고 합니다 그렇다면 풀 수 없는 문제들을 해결하기 위한 방법론을 하나 하나 살펴 보도록 하시죠 체계적인 접근을 위한 질문들 1) 비슷한 문제를 풀어 본 적이 있는가? 일반적으로 알고리즘 대회나, 코딩테스트 등에서 완전히 똑같은 문제가 나오는 경우는 거의 없다고 봐도 될 것 입니다 그래도 우리가 여러 종류의 알고리즘 문제를..

종만북 2단원 문제 해결 개관 내용 정리

안녕하세요 개발자 도도 입니다 종만북 1회독 해보기 첫 번째 시간입니다 ㅎㅎ 2단원 내용을 좀 정리해볼까 합니다 시작해보겠습니다! 문제 해결 과정 프로그래밍 대회를 위한 여섯 단계 문제 해결 알고리즘 1) 문제를 읽고 이해한다 저 또한 알고리즘 시험을 치거나 할 때 항상 문제를 잘못 읽거나, 문제에 주어진 예시나 설명사항을 다 읽지도 않고 성급하게 코딩부터 시작했다가 한참 뒤에 문제를 잘못 읽어서 해당 시험을 포기 했던 때가 많습니다. 종만북에서도 강조하듯 문제를 항상 꼼꼼히 다 읽고 이해한 다음에 문제를 풀어도 늦지 않습니다 잘못 이해해서 예외 케이스들 하나씩 막기 시작하면 나중엔 결국..... 2) 문제를 익숙한 용어로 재정의한다 (재정의와 추상화) 세상에 완전히 똑같은 문제는 없는 법이죠. 주어진 ..

알고리즘 공부 메뉴 취지

안녕하세요 개발자 도도 입니다 참 공부해야할 건 끝이 없는 것 같습니다 ㅎㅎ 이것 저것 막 공부를 하려고 시작중이지만 끈기 있게 하지 못하고 있는 제가 안타깝기도 하네요 입사 후 부터 줄곧 목표로 삼던 종만북(프로그래밍 대회에서 배우는 알고리즘 문제해결 전략) 1회 독을 매년 목표로 삼았었는데 ㅎㅎ 이번에는 드디어 그 목표를 이뤄볼까 합니다 사내 알고리즘 등급인 expert 취득을 목표로 하기도 하면서, 알고리즘에 대해서도 튼튼한 지식을 갖고 있는 개발자가 되고 싶다는 열망을 이루기 위해 시작해볼까 합니다 ㅎㅎ 앞으로 조금씩이나마 글을 남겨서 학습을 해보도록 하겠습니다 S/W 직군으로 이직 혹은 취업 준비 중인 많은 분들에게도 도움이 되었으면 좋겠습니다 화이팅!!! 혹시나 저 책이 어떤 책인지 모르시는 ..

절차 지향, 객체 지향 차이

객체 지향 개발 언어 책(JAVA, Kotlin 등등)을 보면, 흔히들 절차 지향(procedural programming), 객체 지향(Object-Oriented Programming, OOP) 두 개를 많이 비교, 대조를 한다 일단 결론부터 얘기를 하자면, 절차 지향 프로그래밍과 객체 지향 프로그래밍의 의미는 반대 의미가 아니다 절차 지향이란 데이터 중심 기반 프로그래밍, 객체 지향은 객체 중심 기반 프로그래밍이라는 차이가 있다 절차 지향 프로그래밍이란 말 그대로, 프로그램을 절차에 맞게 순차적으로 진행하는 언어 개발 형태를 말한다 (대표적인 언어로는 C언어 등이 있다.) 즉, 프로그램을 유기적으로 또 순차적으로 하나 하나 순서대로 진행하는 방식을 일컫는다 자동차를 만드는 경우를 예시로 많이 들던데..