본문 바로가기

전체 글

(141)
[알고리즘] 구현 구현이란? 머릿속에 있는 알고리즘을 소스 코드로 바꾸는 과정 완전탐색이나 시뮬레이션과 같은 유형을 구현 유형으로 묶는다. 완전탐색: 모든 경우의 수를 주저 없이 다 계산하는 해결 방법 시뮬레이션: 문제에서 제시한 알고리즘을 한 단계씩 차례대로 직접 수행 파이썬에서 고려해야할 사항 나는 파이썬을 사용해 코테 문제를 풀기 때문에 메모리 제한 문제에 걸리지 않도록 리스트 크기를 주의깊게 생각할 필요가 있다. 리스트의 크기 코딩 테스트의 메모리 제한 문제 파이썬은 다른 언어에 비해서 구현상의 복잡함이 적은 편이지만 데이터 처리량이 많을 때는 꼭 메모 리 제한을 고려하도록 하자. 리스트를 여러 개 선언하고, 그중에서 크기가 1,000만 이상인 리스트 가 있다면 메모리 용량 제한으로 문제를 풀 수 없게 되는 경우도..
[알고리즘] 이진 탐색 0. 순차 탐색 리스트 안에서 특정한 데이터를 찾기 위해 앞에서부터 데이터를 하나씩 확인하여 찾는 방법 시간만 많다면? 데이터가 많아도 원하는 데이터를 찾아낼 수 있음 데이터 정렬 여부와 상관없이 가장 앞에 있는 원소부터 확인한다는 특징을 가짐 시간 복잡도 : O(N) 1. 이진탐색 반으로 쪼개면서 탐색하기 조건: 배열 내부가 정렬되어야 사용가능, 탐색 범위를 절반씩 좁혀가며 데이터를 탐색 빅오 표기법 O(logN) 이진탐색 예시 ) def binary_search(array,target,start,end): while starttarget: end=mid-1 #중간값보다 타겟값이 큰경우 중간의 오른쪽 확인 else: start=mid+1 return None # n(원소의 개수)과 target(찾고자 ..
[알고리즘]- 그리디 ■그리디 알고리즘이란??? 그리디 알고리즘, 탐욕법이라고 불림, "부분적인 최적해가 전체적인 최적해가 되는 경우 " 나중에 미칠 영향보다는 현재에 가장 좋은 선택을 하는 방법 -최적의 해는 찾을 수 없지만, 거스름돈 문제 같이 가장 큰 화폐 단위부터 돈을 거슬러 주는 것과 같이 탐욕적으로 접근했을때, 정확한 답을 찾을 수 있는 보장이 있음 - 다른 알고리즘에 비해 사전에 외우고 있지 않아도 풀 수 있을 가능성이 높은 문제 유형 이라는 특징을 가진다. -문제가 다양해서 많은 유형을 접해보고 ,,,문제를 풀어봐야 한다.......ㅜ ■주요 속성 1. 탐욕 선택 속성(Greedy Choice Property) 각 단계에서 가장 이상적인 선택을 하는것이 최적의 해를 구한다는 뜻 2. 최적 부분 구조(Optima..
[CS]뿌론트가 알아야 할 지식 -1. WEB ■웹 브라우저  □  WEB웹사이트에 접속할때, chrome,firefox, safari와 같은 웹 브라우저 프로그램을 사용해서 접속을 한다.사용형태는 웹페이지를 서버에 요청(request)하고 서버의 응답(response)를 웹 문서 형태로 받아서 사용한다.그 다음 받은 웹문서를 렌더링해서 화면에 페이지를 표시해주면 우리가 보는 화면임 ~    □  SERVER & CLIENT 클라이언트가 서버에 요청을 보내고 , 서버가 응답을 하는 형식 ex_ 웹 서비스서버는 어떤 파일을 보내주는지 ? _ 대표적으로 html 이라는 마크업 언어를 통해서 보내준다.     □   HTTPhtml과 같은 문서를 잘 전달 받기 위해서 사용하는 프로토콜, 데이터를 간편하게 전송하는 특징을 가지고 있음https://yeonj..
[알고리즘]정렬 & 해시 함수 정렬 : 데이터를 특정한 기준에 따라서 순서대로 나열하는 것  ○선택정렬- 가장 원시적인 방법, 매번 가장 작은 것을 선택하는 알고리즘-가장 작은 데이터를 선택해서 자리를 바꿔줌 -N개의 숫자가 있을때,  가장 작은 데이터를 N-1번 보내며 품-선택 정렬에서는 swap사용하면 됨array[0], array[1] = array[1], array[0]  ■시간 복잡도 n X  (n+1)/2번의 연산을 수행하므로 O(N^2)라고 볼수 있음==> 알고리즘 문제 풀이에서 사용하기에는 느린편    ○삽입정렬 - 데이터를 하나씩 확인하며 각 데이터를 적절한 위치에 삽입  - 삽입 정렬은 첫번째 데이터는 그 자체로 정렬되어 있다고 생각하고 두번째 데이터 부터 판별 시작#삽입 정렬array=[7,5,9,0,3,1,6,2..
[REACT]0105 ●외부 API를 가져오기 api테스트 할때 ↓ 요거 사용함 https://jsonplaceholder.typicode.com/ JSONPlaceholder - Free Fake REST API {JSON} Placeholder Free fake API for testing and prototyping. Powered by JSON Server + LowDB. Tested with XV. Serving ~2 billion requests each month. jsonplaceholder.typicode.com ●promise promise란? 비동기 처리에서 사용되는 객체, axios또한 promise를 기반으로 만들어짐 api로부터 데이터를 페치하기 위해서 , fetch로 url을 전달할 수 있다. 비동..
[REACT]0103 ●연산자 -조건(삼항) 연산자 pages > 1000 ? "over a thousand" : "less than 10000"; //첫번째 부분(pages>100): 상태 //두번째 부분: 상태가 참일 경우 보여줌 // 3번째 부분: 상태가 거짓일 경우 보여줌 -논리 연산자 (&& ) 왼쪽에서 오른쪽으로 평가할때 연산자는 처음으로 만나는 거짓같은 피연산자의 값을 반환 만약 모두 참이면 마지막 피연산자의 값을 반환함 //AND연산자는 불리언이 아닌 값을 보존함 result=''&& 'fff' //''빈문자열 반환 result = 2&&0 //result에 0이 나옴 ●Arrow Function -함수 작성하는 방법 인수, 화살표 , 반환하려는 항목 //일반 함수식 /*function getYear(str) ..
[REACT]0102 리액트 사용 이유 ●프론트 엔드 프레임워크가 필요한 이유? 사용자 인터페이스를 데이터와 동기화하는 것이 어렵기 때문에 프론트엔드 프레임 워크가 존재함 ● 바닐라 js에서 문제점이 발생 복잡한 프론트 단을 구성하려면 다량의 직접 DOM트래버링과 조작이 필요함 앱에 버그가 많이 생김 ● 리액트 리액트는 UI를 다시 렌더링하여 상태 변경에 반응한다. 1. 웹페이지에 구성 요소를 렌더링해 현재 상태에 기반한 사용자 인터페이스로 만든다. 2. 사용자 인터페이스를 상태와 동기화하는 데 뛰어나다. ● 리액트 사용법 브라우저에서 렌더링 하기 위해서는 React DOM 이 필요함 개발하면서 참고하기 https://react.dev/ React React is the library for web and native use..