일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 글또
- node.js
- 운영체제
- python algorithm
- Python
- 파이썬
- 자바
- JavaScript
- Operating System
- 프로그래머스
- 개발공부
- execution context
- codestates
- java
- 비동기
- react 기초
- context switching
- algorithm
- 파이썬 알고리즘 인터뷰
- OS
- REACT
- Zerobase
- 코드스테이츠
- 컴퓨터공학
- 자료구조
- 자바스크립트
- Computer Science
- typeScript
- useState
- 알고리즘
- Today
- Total
목록전체 글 (107)
Back to the Basics
5강 재귀 알고리즘 (recursive algorithms) - 응용 문제의 종류에 따라 재귀 알고리즘을 적용하여 알고리즘을 간단하고 이해하기 쉽게 서술할 수 있다는 장점이 있다. 하지만 일반적으로 주어진 문제에 대해서 반복적인 알고리즘이 제귀적인 알고리즘보다 시작적 효율이 더 높다. 그럼에도 불구하고 사람의 생각을 코드로 옮겨놓을 수 있다는 특성 때문에 tree와 같은 자료구조를 이용하는 알고리즘에는 매우 직관적으로 적용할 수 있는 경우가 많다. 재귀알고리즘을 이용하여 다음의 문제들을 풀 수 있다. (1) 조합의 수 (n 개의 서로 다른 원소애서 m개를 택하는 경우의 수) 구하기 // Trivial case를 고려해야 한다. // n=m 일 때와 m=0일 때 이외에 재귀를 사용하여 구현한다. def c..
PROGRAMMERS - PART4 RECURSIVE ALROTIGHM Recursive algorithm - 기초 재귀 알고리즘은 알고리즘의 이름이 아니라 '성질' 이다 같은 알고리즘을 반복적으로 적용함으로써 풀어내는 방법 ex ) sum(n)=sum(n-1)+n 재귀알고리즘 에서는 종결조건이 중요하다. (Trivial case) 재귀함수(Recursive function)이란? 하나의 함수에서 자신을 다시 호출하여 작업을 수행하는 것. 생각보다 많은 종류의 문제가 재귀적으로 해결이 가능하다. (Recursively) ex ) Binary Tree Tree 탐색 : 10을 찾으시오 --> 재귀적인 방법으로 이용 가능함. Recursive function을 호출할 때는 종결조건이 매우 중요..
PROMRAMMERS - PART3. SORT & SEARCHING PYTHON LIST의 정렬 (1) sorted() 내장함수 (built-in function) 정렬된 새로운 리스트를 얻어낸다. (2) sort() list의 method 해당 리스트를 정렬한다. 원래 list 자체가 정렬된다. Function와 Method의 차이는? function : class와 상관 없이 독립적이다. method : class & object와 연관이 있음. class 내에 선언되어있는 함수. # 문자열로 이루어진 리스트에서 문자열 순서로 정렬하려면, 정렬에 이용할 수 있는 Key를 지정. # 문자열로 이루러진 list의 경우 사전 순거로 정렬디 된다. (대문자>소문자) L1=['abcd','..
Data Structure and Algorithm Algorithm 이란? 사전적 정의 : 어떤 문제를 해경하기 위한 절차, 방법, 명령어들의 집합 programming : 주어진 문제를 해결하기 위한 자료구조와 연산 방법에 대한 선택. 자료구조를 배워야 하는 이유 : 문제를 파악하고 내가 사용한 자료구조가 어떤 성질이여야 하는지 알아야 하기 때문 Linear Array 1) Array와 List Arrya : 원소들을 순서대로 늘어놓는 것. List : data type이 다른 원소들 사용 가능. 2) Python List에 활용할 수 있는 연산들 실행시간이 list 길이에 독립적인 연산들 O(1) .append() : 맨 끝에 원소를 덧붙인다. .pop() : 맨 끝의 원소 하나를 꺼내고 꺼낸 것을..
다음에 또 개발환경 구축을 해야 할 경우를 대비하여, 기록하기로 하였다. MAX HDD --> SDD로 업그레이드 하고 나서 기존에 설정해둔 개발환경이 리셋되어 다시 설치하게 되었다. [ 개발환경 설치하기 1 ]Brew 설치부터 git 설치까지 진행해 보기로 한다. 1. Brew 설치하기 이 사이츠트를 참고하면 설명이 나와있다 Brew 위의 사이틍에 나와있겠지만, Brew란 Apple 또는 linux 에서 제공하지 않는 패키지를 관리해준다. 설치는 터미널에 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 를 복붙하여 실행하면 설치를 진행한다! 위의 명령어를 실행시키면, 아래와 같이 ..
Coplit 문자열, 반복문 Review 드디어 두 번째 코플릿을 진행하였다. 나는 문제를 풀 때 한 가지 방법이 아닌 다양한 방법을 생각해보고, 더 효율적인 방법이 있는지 고민하면서 푸는 편이다. 이번 pair도 나와 비슷한 성향이어서 잘 맞았던 것 같다. 지금은 빨리 문제를 푸는 것보다 다양한 방법을 시도해 보면서 문제를 풀기 때문에 이번 코플릿 문제도 다는 못 풀었던것 같다. 그래도 저번 코플릿을 했을 때 보다는 많이 풀었으니 좀 더 속도도 향상? 되었다고 해도 되지 않을까...ㅎ 저번 코플릿에서 미흡했던 점을 생각하며 , 이번 코플릿 에서는 나의 진행 방향과 코드를 Pair 가 이해할 수 있도록 차분하게 설명하려고 노력했다. 저번보단 설명하는 것과 수도 코드 작성이 좀 더 부드러워지긴 한 것 같다..
[학습 내용] -- 문자열(string) 1. 문자열의 Properties and methode length : 문자열의 길이 확인. str.length; 문자열의 글자에 접근하는 방법 : str[1] ---> 배열 이라고 생각하면 될듯 연산자를 이용하여 문자열 합침 : "Sora"+"is a programmer in Google" 문자열을 나눌 수 있음 : str.sloce(0,3) or str.substring(0,3) --> 파이썬의 slice와 비슷한듯하다. 대문자로 변환 : str.toUpperCase() 소문자로 변환 : str.toLowerCase() 문자열 내 특정 문자의 index return 가능. : str.indexOf('a) or str.lastIndexOf('a) 문자열 내 특정..
1. 첫 Pair Programming에 대한 느낀 점 처음으로 Part programming을 하였고, 2시~9시 약 7시간 동안(꾀나 오래) 진행을 하였다. 나의 첫 Pair 괜찮았다. 배려도 있고 말을 하는 데 있어 어색하지도 않았다. 쉬운 문제든 어려운 문제든 정말 열정적으로 하셨던 분 같다. 처음 해보는 페어 프로그래밍에서 첫 페어를 잘 만났다고 생각한다. 시작 전 대충 문제를 보았을 때 문제의 수는 많았지만, 난이도는 그렇게 높아 보이지 않았다. 해서 조금 천천히 느긋하게 진행을 해도 빨리 끝내고 개인 공부를 할 수 있을 줄 알았다.. 결과를 미리 말해보면 시간 내에 모든 문제를 풀지 못했다 ^^;; 이미 파이썬이나 다른 언어를 접하면서 기본적인 문제들은 풀어보았기에 금방 할 줄 알았지만, 혼..