분류 전체보기502 Return에 대하여 - 알고리즘을 공부하면서, 다른사람이 작성한 다양한 코드를 접하고 분석하게 된다. - 그러다 보니 내가 알고있다고 생각한 것들도 완전히 알지 못했다는 것을 깨닫게 되었다. - 최근에 이런 경험을 한 것이 Return이다. 1. Return의 기능 - return은 메소드를 구현할 때 굉장히 자주 사용되는 명령어다. - 단순히 함수를 종료하거나 값을 반환한다는 이해보다 한 단계 깊게 알아보자. a) Return은 함수를 종료하기만 하는걸까? - return은 함수를 종료한다. - 아무런 반환값 또는 함수 내부의 지역변수 없이 return만 덩그러니 사용되는 경우가 여기에 해당한다. - 그러나 생각해보면 return이 수행되고 난 후에, 다음 코드가 실행된다. - 즉, return은 함수를 종료하고나서 ma.. 2021. 11. 28. 파이썬 클래스와 self의 의미 1. Class 개념 클래스를 생성한다는 것은 새로운 데이터 타입을 만든다는 의미다. 위의 스크린샷을 살펴보자. 4라는 값을 test 라는 변수에 담았다. 4와 test의 type을 출력해보면 int 클래스 라는 것을 확인할 수 있다. 즉, int 클래스의 객체이고 int 자료형을 사용한다는 의미다. 그렇다면 간단하게 class를 만들어서 객체를 생성하여 해당 객체의 type을 출력해보자. 위의 스크린샷에서 확인할 수 있듯이, 클래스는 새로운 자료형을 나타낸다. 즉, 클래스를 만드는 것은 새로운 자료형을 생성하는 것이다. 2. Self 개념 파이썬에서 클래스를 만들고, 클래스 내부에 메소드를 선언할 때에는 반드시 self라는 변수가 첫번째로 들어가야 한다. 이는 다음과 같이 이해할 수 있다. person.. 2021. 11. 6. 급할수록 돌아가야한다. "급할수록 돌아가라"는 말이 있다. 급하기 때문에 지름길을 찾느라 시간을 허비하지만, 사실 지름길은 존재하지 않기 때문이다. 오히려 묵묵히 정도를 걷는것이 가장 확실하고 빠른 길이다. 대기업을 목표로 준비를 시작한지 벌써 3개월차가 되었다. 내 실력은 여전히 초라하고 시간은 부족해보이고 그러나 목표는 높기에 10월, 1달동안 나는 지름길을 찾았다. 정말 다행히 내 주변에는 좋은 사람들이 많다. 나의 이런 행보를 지켜봐주는 사람들이 내가 정신차릴 수 있도록 조언을 해주기 때문이다. 사실 조금 지쳤다. 열심히 했기에 지칠수 있는 거라고 생각하며, 마음을 가다듬고 다시 정도를 걷기로 다짐해본다. 내가 가장 기피하는 방법이 나를 가장 성장시키는 일이라는 것을 잊지 말자. 정면돌파 하자. P.S. Thanks t.. 2021. 10. 23. 갑자기 의욕을 상실한 그대에게 한동안 꾸준히 잘 하고 있었다. 한단계 성장한 것도 확인할 수 있었다. 그러다 문득 의욕을 상실하게 되었다. 의욕상실의 원인은 다음과 같은 상황으로 분류할 수 있다. - 노력은 하는데 성장의 기미가 보이지 않는 경우 - 이전과 같은 방식으로 공부하지만, 이 방식을 고수하면 안된다는 것을 본능적으로 아는 경우 - 여전히 열심히 인데, 여기서 무엇을 바꾸어야 할지 모르는 경우 - 다음 단계로 넘어가기 위한 방법이 눈에 보이지 않는 경우 해결책은 간단하다. 지금까지 가장 하기 싫었던, 가장 기피했던 방법을 시도하는 것이다. 가장 고통스럽지만, 가장 효과가 좋은 그 방법, 지금 당신 머릿속에 떠오른 그 방법을 해야할 때가 왔다. 2021. 10. 21. 12. String Match(KPM, Rabin-Karp, Palindrome) 0. 시작하기전에 - 한동안 알고리즘 공부를 하며 깨달은게 있다. - 알고리즘을 얼마나 외우고 있느냐는 코딩테스트에서는 중요하지 않다는 점이다. - 결국 이론적인 이해도와 지식에 대한 소화시간을 충분히 갖고, 이를 기반으로 응용적인 사고가 가능하냐는 부분이 가장 중요하다. - 그러므로 코드를 외우려 노력하지말고, 그 안의 규칙성과 논리를 이해하기 위해 더 시간을 투자하기를 바란다. 1. String Match - 문자열을 탐색하는 방법론이다. - 대표적으로 KMP 알고리즘과 Rolling Hash를 사용하여 구현한 Rabin Karp 알고리즘이 있다. - 일반적으로 String Match 알고리즘은 O(n)의 시간복잡도를 갖는다. a) 시간복잡도 - 문자열 탐색은 다음과 같은 과정을 거친다. string.. 2021. 10. 20. 11. Array(배열) - Radix Sort 0. 시작하기 전에 - Radix Sort는 Counting Sort를 기반하기 때문에, Counting Sort를 알아야 한다. - 다음 포스팅에서 Counting Sort에 대해 익히기를 바란다. https://devraphy.tistory.com/438 10. Array(배열) - Counting Sort 0. 시작하기 전에 - 지금까지 배운 알고리즘은 O(n^2) 또는 O(n log n)의 시간복잡도를 갖는다. ▶ O(n^2): bubble, insertion ▶ O(n log n): merge, quick - Counting Sort는 O(n + alpha)의 시간복잡도를.. devraphy.tistory.com 1. Radix Sort(기수 정렬) a) Radix Sort를 사용하는 이유 - .. 2021. 10. 8. 그럼에도 불구하고 지겨워 죽겠다. 매일 알바를 가는 것이 지겹다. 매일 알바가 끝나고 지친 몸을 이끌고 공부하는 것도 지겹다. 언제 끝날까, 언제 실력이 오를까, 내가 할 수 있을까 엔딩을 보기 전에는 알 수 없는 질문을 스스로에게 던지는 것도 지겨워 죽겠다. 그럼에도 불구하고, 나는 알바를 할 수 있음에 감사하며 알바 후 카페에서 공부를 할 수 있도록 허락해주신 사장님께 감사하며 온전히 나만을 위해 나에게 투자할 수 있는 시간을 보내고 있음에 감사하며 지금 내 스스로가 이런 환경을 만들어 낸 것에 대견하고 자랑스럽다. 그렇기에 나는 내일도 공부를 할 것이며, 그러므로 나는 반드시 실력이 오를 것이며, 결국 나는 반드시 내가 해낼 것이라고 굳게 믿고 또 믿는다. 나는 할 수 있다. 2021. 10. 6. 10. Array(배열) - Counting Sort 0. 시작하기 전에 - 지금까지 배운 알고리즘은 O(n^2) 또는 O(n log n)의 시간복잡도를 갖는다. ▶ O(n^2): bubble, insertion ▶ O(n log n): merge, quick - Counting Sort는 O(n + k)의 시간복잡도를 가진다. - Counting Sort를 이해하며 k의 의미가 무엇인지 알아보자. 1. Counting Sort(계수정렬) - Counting Sort는 주어진 array의 요소를 counting하여 정렬하는 알고리즘이다. a) Counting Sort의 정렬과정 2. 코드 구현 - 위에서 진행한 과정을 코드로 그대로 구현하면 Counting Sort 알고리즘이 완성된다. - 다음 코드를 확인해보자. from typing import List.. 2021. 10. 5. 컴공기초 인강을 완강했다. 오늘 컴공기초 인강을 완강했다. 항상 마음 한켠 가지고 있던 비전공자 라는 열등감을 드디어 극복했다. 정말 전공자 만큼 아냐고 질문할 수 있다. 남들 4년동안 배운 걸 어떻게 몇개월의 인강으로 커버할 수 있겠는가. 불가능한건 아니지만, 지식을 소화하는 시간을 생각했을 때에는 당연히 몇개월로는 부족하다. 하지만, 대학에서 4년동안 공부한거 다 기억하는가? 다 기억하는건 아니지만 전공자로써의 기본적인 틀과 바탕지식이 있지않은가? 나는 이번 인강을 완강하면서 그 기본적인 틀과 바탕지식을 만들었다고 확신한다. 그러므로 이제부터가 진짜 시작이다. 아직 9월이 다 가기까지 3일이라는 시간이 있다. 남은 3일동안 시스템 프로그래밍과 컴퓨터 구조 핵심 총 정리를 진행하려고 한다. 더불어, 운영체제도 복습할 예정이다. .. 2021. 9. 27. 이전 1 ··· 17 18 19 20 21 22 23 ··· 56 다음