● 선택정렬(Selection sort)? - Selection sort 또한 Bubble sort와 마찬가지로 구현이 그다지 어렵지 않은 알고리즘이다. - 반대로 말하면 Selection sort 또한 Bubble sort와 마찬가지로 성능이 좋다고 할 수는 없다. - Selection sort는 배열의 정렬되지 않은 영역의 첫 번째 원소(가장 앞 원소)를 시작으로 마지막 원소까지 비교 후 가장 작은 값을 첫 번째 원소로 가져온다. ex) [6, 3, 4, 1, 2, 5] - 위의 배열이 한 번도 Selection sort를 거치지 않은 배열이라고 했을 때 배열의 정렬되지 않은 영역은 아래와 같다. - 정렬되지 않은 영역의 첫 번째 원소(index[0] = 6)를 시작으로 마지막 원소까지 비교 후 가장..
● 도입 - OS가 작업을 처리하는 단위를 프로세스라고 하며 사용자가 OS에게 작업을 요구하는 만큼 프로세스의 수도 늘어난다. - 프로세스를 생성하면 각 프로세스 당 PCB가 생성되고 메모리에 코드, 데이터, 스택, 힙영역 등을 만들어줘야한다. - 따라서 프로세스의 수가 많아지면 그 수 만큼 PCB, 코드, 데이터, 스택, 힙영역을 만들어줘야 하기에 너무 무거워진다. ex) - 크롬 브라우저는 탭 1개 당 1개의 프로세스가 생성된다. - 100개의 탭을 열면 100개의 프로세스가 생성되는데 이렇게 되면 웹 브라우저가 메모리를 너무 많이 차지하게 된다. - 웹 브라우저의 탭들은 서로간의 통신을 위해 IPC(Inter Process Communication)를 이용하는데 IPC는 통신 비용이 상대적으로 많이..
[문제] [해설] - 열심히 뻘짓한 흔적, 혹시나 규칙이 있지 않을까 했는데 역시나 없다. /* 1 1 16 26 31 61 2 2 17 28 32 62 3 4 18 29 33 64 4 5 19 40 34 65 5 7 20 41 35 67 6 8 21 44 36 68 7 10 22 46 37 70 8 11 23 47 38 71 9 14 24 49 39 74 10 16 25 50 40 76 11 17 26 52 12 19 27 55 13 20 28 56 14 22 29 58 15 25 30 59 */ /* 1,2,1,2,1,2,1,3,2,1,2,1,2,3,1,2,1,11, 1,3,2,1,2,1,2,3,1,2,1,2,1,2,1,2,1,2,1,3,2 */ - 문제 정답은 맞췄다. 아래는 나의 풀이 - 3과 관..
● 도입 - 일반적으로 프로세스가 생성될 때 아래와 같은 과정으로 생성된다. 1. .exe 파일을 더블 클릭해서 실행 2. OS가 해당 프로그램의 코드 영역과 데이터 영역을 메모리에 로드하고 빈 stack과 빈 heap을 만들어 공간을 확보한다. 3. 해당 프로세스 관리를 위한 PCB를 만들어서 값을 초기화한다. (프로그램이 메모리에 올라갔으므로 프로세스라고 부른다.)- 위에서 설명한 프로세스 생성 과정은 OS가 부팅된 후 0번 프로세스가 생성될 때 딱 한 번만 실행된다. - 나머지 모든 프로세스들은 새로 생성하지 않고 0번 프로세스를 복사해서 사용하게 된다. - 복사에는 fork() 함수를 사용한다. - 아래 그림의 1번, 2번, 3번 프로세스 모두 0번 프로세스를 복붙해서 생성된 프로세스들이다. - ..
2023.02.22 - [운영체제] - #7 PCB(Process Control Block) - 프로세스 제어 블록 #7 PCB(Process Control Block) - 프로세스 제어 블록 ● PCB - 프로그램이 메모리에 올라가서 실행중인 상태를 프로세스라고 하며 OS는 여러개의 프로세스를 전부 다 관리 & 공평하게 실행시켜야한다. - 프로세스가 만들어지면 OS는 해당 프로세스의 radderveloper.tistory.com - 위의 글을 먼저 읽어보자 ● 도입 - Context switching은 프로세스를 실행하는 중에 다른 프로세스를 실행하기위해 현재 실행중인 프로세스의 상태를 저장하고 다른 프로세스의 상태값으로 교체하는 작업을 의미한다. - 아래 그림과 함께 보면서 Context switch..
[문제] [해설] - 나의 풀이이다. 처음부터 아래와 같이 깔끔하게 푼건 아니다. - 필요없는 변수 선언, 정렬 등 더러운 코드가 많았는데 정답 후에 필요없는 부분을 제거하다보니 아래와 같이 됐다. import java.util.List; import java.util.ArrayList; import java.util.Collections; class Solution { public String solution(String s) { List list = new ArrayList(); while(s.length() > 0) { String one = String.valueOf(s.charAt(0)); String tmp = s.replaceAll(one, ""); int sub = s.length() - ..
- Total
- Today
- Yesterday
- 프로그래머스
- 코테
- MySQL
- API
- 프로세스
- db
- SpringBoot
- 자료구조
- Spring Boot
- nosql
- Stream
- Phaser
- Java8
- 운영체제
- 빅데이터 분석기사
- node.js
- SQL
- OS
- java
- spring
- MongoDB
- DART
- git
- 코딩테스트
- 메모리
- jpa
- Phaser3
- 알고리즘
- Advanced Stream
- 빅데이터
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |