개발공부_Blog/Algorithm7 프로그래머스-주식가격 https://school.programmers.co.kr/learn/courses/30/lessons/42584 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 설명초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. 제한사항prices의 각 가격은 1 이상 10,000 이하인 자연수입니다.prices의 길이는 2 이상 100,000 이하입니다. 풀이과정prices의 배열 요소 값들을 비교하기.prices의 첫번째 요소와 다음 요소 ~ 끝까지 비교하기자신보다 큰 값이 나오면 가격.. 2024. 11. 18. 프로그래머스 - 프로세스 😀 프로세스 [ 스택 / 큐 ]https://school.programmers.co.kr/learn/courses/30/lessons/42587 문제 설명운영체제의 역할 중 하나는 컴퓨터 시스템의 자원을 효율적으로 관리하는 것입니다. 이 문제에서는 운영체제가 다음 규칙에 따라 프로세스를 관리할 경우 특정 프로세스가 몇 번째로 실행되는지 알아내면 됩니다. 1. 실행 대기 큐(Queue)에서 대기중인 프로세스 하나를 꺼냅니다.2. 큐에 대기중인 프로세스 중 우선순위가 더 높은 프로세스가 있다면 방금 꺼낸 프로세스를 다시 큐에 넣습니다.3. 만약 그런 프로세스가 없다면 방금 꺼낸 프로세스를 실행합니다. 3.1 한 번 실행한 프로세스는 다시 큐에 넣지 않고 그대로 종료됩니다. 예를 들어 프로세스 4개 [A,.. 2024. 11. 17. Data Structure - Tree Tree 나무를 거꾸로 옮겨 놓은 듯한 모양의 자료구조로써,루트 노드와 자식 노드로 이루어져 계층적 구조를 표현하는 비선형 자료구조다.비선형 자료구조 : 하나의 자료 뒤에 여러가지 자료가 붙을 수 있는 자료구조 트리의 가장 위 노드를 루트라고 하며 , 그 아래 노드를 자식 노드라고 한다. 각 노드는 여러 자식 노드를 가질 수 있으며, 이러한 자식 노드는 자체 자식 노드를 가질 수도 있어 재귀적 구조를 형성한다. Tree의 사용 계층적 데이터: 파일 시스템, 조직 모델 등데이터베이스: 빠른 데이터 검색라우팅 테이블: 네트워크 알고리즘의 데이터 라우팅정렬/검색: 데이터 정렬, 검색우선순위 큐: 우선순위 큐의 구조는 일반적으로 이진 힙과 같은 트리를 사용 Tree의 종류 이진트리 BinaryTree : 각.. 2024. 10. 29. Data Structure - Hash Table Hash Table 해시 함수를 사용해 key-value 쌍을 저장하고 검색하는 자료구조이다.Hash = 해시함수 어떤 데이터를 고정된 길이의 값으로 변환하는 함수를 말한다. 해시 함수를 통해 입력된 데이터를 특정 규칙에 따라 숫자나 문자열로 변환하는 역할을 합니다Hash table은 효율적인 탐색을 위한 자료 구조로써 hash함수를 통해 얻은 key-value 쌍의 데이터를 저장하고 검색한다.hash 함수에 key값을 넣어 얻은 해시값을 index 위치로 지정하여 데이터 쌍을 저장한다. 배열과 유사한 형태지만 index가 아닌 해시 값을 통해 데이터를 찾는다.저장, 삭제, 검색의 시간복잡도는 O(1)로 데이터를 순차적으로 검색하는 게 아니라 key값으로 한번에 찾아낸다. Hash Collision (.. 2024. 10. 29. Data Structure - Stack Stack ‘쌓다, 올리다’라는 뜻으로LIFO, Last Input First Out 나중에 들어간 것이 먼저 나오는 후입선출의 자료구조다.Stack이 사용되는 곳함수가 다른 함수를 호출할 때의 메모리에 쌓이는 기능뒤로가기 버튼의 Undo기능으로 사용자가 수행한 작업을 되돌리는 기능.push : 맨 뒤의 데이터 추가, pop : 맨 뒤의 데이터 제거JavaScript의 arr - push와 pop메서드를 활용해 구현가능 JavaScript로 Stack구현하기 스택 구현 정의스택에 데이터가 가득 찼는지 / 비었는지 확인하는 연산이 필요하고,데이터를 추가 / 삭제하는 연산도 필요하다.알고리즘을 풀 때 Stack을 사용해 풀어라!!는 말은 없다. 그러니 스택을 적용하는 부분을 감으로 찾을 수 있도록 연습해야.. 2024. 10. 29. Data Structure - Queue Queue ‘줄을 서다’ 라는 뜻으로FIFO, First Input First Out 먼저 들어간 것이 먼저 나오는 선입선출의 자료구조다.여러 이벤트가 발생했을 때, 작업을 순서대로 처리해야 할 때 Queue가 사용된다.enqueue : 맨 뒤의 데이터 추가 , dequeue : 맨 앞의 데이터 제거JavaScript shift( )메서드 또는 배열을 사용해 구현 가능하다. JavaScript로 Queue 구현하기 class Queue { items = []; front = 0; rear = 0; enqueue(item) { this.items.push(item); this.rear++; console.log(`Enqueue: ${item} - Queue: [${this.item.. 2024. 10. 29. 알고리즘과 자료구조 그리고 시간복잡도 사이의 관계 알고리즘 재미있냐?? ( 재미있어 질 예정입니다!!!! ) 알고리즘 Algorithm문제를 해결하기 위한 절차나 규칙의 집합이다.입력을 받아 어떤 목표나 문제를 해결하기 위해 처리 과정을 명확히 정의한 방법이다.명확성: 각 단계가 명확해야 한다.유한성: 알고리즘은 일정한 단계 내에 종료되어야 한다.입력과 출력: 반드시 정해진 입력이 있고 원하는 결과를 출력한다.효율성: 문제를 해결하는 데 시간과 공간 자원을 최소화해야 한다. 알고리즘의 종류기술계산유클리드 호제법(최대공약수), 가우스 소거법(방정식), 사다리꼴법칙(정적분),데이스크라 알고리즘(최적경로), 에라토스테네스의 체(소수)정렬단순 선택 정렬, 단순 삽입 정렬, 단순 교환 정렬(버블정렬) 병합정렬, 퀵 정렬, 셸정렬검색선형검색(리니어서치), 이진검.. 2024. 10. 22. 이전 1 다음