일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 명령어
- 주니어
- 코딩테스트
- HashMap
- 해시맵
- 문자열
- HTTP
- 프로그래머스
- 자료구조
- 이직
- 인텔리제이
- 스프링 부트
- bfs
- spring
- IntelliJ
- 구현
- 도커
- docker
- 스타트업
- 구름LEVEL
- 배열
- 개발자
- dfs
- 스프링
- spring boot
- 해결
- Linux
- 백엔드
- 스프링부트
- Java
- Today
- Total
목록개발지식 (50)
마이의 개발 블로그
쓰레드와 프로세스는 각각 OS 교과서의 한 챕터씩을 차지할 정도로 다루어야할 내용이 많아 간단히 정리하기에는 어려운 면이 있다. 여기서는 일단 이 둘의 개념과 역할에 대해 간략하게 다루어보고자 한다. 프로그램(program) - 컴퓨터에서 특정 작업을 수행하기 위한 명령어들의 집합 (코드의 모음) - 보조기억장치에 저장되어있으나 메모리에는 올라가있지 않은 정적인 상태임 프로세스(process) - 실행중인 프로그램(program in execution)을 말함 - 프로그램은 OS로부터 필요한 메모리(code, stack, heap, data)를 할당받아 프로세스가 됨 (동적인 상태) - 하나의 프로세스에 문제가 발생하더라도 해당 프로세스만 종료된다는 특징이 있음 Process Control Block (..
배경 백준 1715번: 카드 정렬하기(그리디 알고리즘) 문제를 ArrayList로 풀다가 시간 초과가 뜨길래 문제를 해결하던 중 우선순위 큐를 적용해야만 한다는 걸 알게되었다. 처음에는 List 클래스의 sort() 메서드 사용 시 오름차순 정렬을 했기 때문에 연산이 완료된 값을 삭제할 때 배열이 전체 이동되어 시간이 많이 소요되는 거라고 생각했다. 그래서 내림차순 정렬로 바꾸고, ArrayList의 끝부분에서 삽입 삭제 시에 배열의 전체 복사나 이동이 없게끔 코드를 변경했는데, 여전히 시간초과가 뜨길래 결국 다른 사람들의 풀이를 검색할 수 밖에 없었다. //ArrayList를 사용한 예시 - 시간초과 while(list.size() > 1) { list.sort(Comparator.reverseOrde..
배경 - 자바 컬렉션 프레임워크의 컬렉션데이터 그룹 3가지 : List, Set, Map - List 인터페이스 구현 클래스 4가지: ArrayList, LinkedList, Stack, Vector - 여기서 대표적으로 많이 사용되는 ArrayList와 LinkedList를 비교하고자 함 List 인터페이스 공통점 - 값의 중복을 허용하며 저장순서가 유지된다는 공통점이 있음 ArrayList - 기존 Vector 클래스를 개선한 클래스로, 구현원리와 기능은 동일하나 가급적 ArrayList를 사용하는 것이 좋음 - Object 타입으로 선언되어 모든 종류의 객체가 사용가능함 - 이름에서도 알 수 있듯 배열과 유사한 구조를 가지며, 내용 추가/삭제/정렬 등의 메서드를 제공함 - 데이터의 추가와 읽기에는 ..
배열 (array) - 다수의 데이터를 하나의 이름으로 묶어 관리하기 위한 자료구조로 인덱스와 값으로 구성됨 - 인덱스를 통해 데이터에 접근함 (random access 가능) - 논리적 저장 순서와 물리적 저장 순서가 일치함 (연속적 메모리 공간 차지) - 정적 할당으로 크기 변경이 불가능함 (삽입, 삭제시에도 빈 공간은 유지됨) 리스트 (list) - 메모리 공간 활용이 제한적인 배열의 단점을 극복하기 위해 만들어진 자료구조 - 포인터를 통해 데이터에 접근함 (포인터를 위한 추가 메모리 공간 필요) - 논리적 저장 순서와 물리적 저장순서가 다름 (불연속적 메모리 공간 차지) - 동적 할당으로 크기가 가변적임 (삽입, 삭제시 메모리 재할당) 배열과 리스트 비교 (속도 기준) 작업 탐색 삽입 및 삭제 속..
용어 문자집합(character set) - 프로그래밍 언어에서 프로그램이나 데이터를 표현하기 위하여 미리 결정되어 있는 문자의 집합 인코딩(encoding, 부호화) - 문자나 기호의 집합을 컴퓨터에서 저장하거나 통신에 사용할 목적으로 문자 부호(character code)로 변환하는 것 디코딩(decoding, 복호화) - 인코딩 된 문자 부호(character code)를 다시 본래 문자나 기호로 표현하는 것 문자집합의 종류 - 아스키 코드, 유니코드 1. American Standard Code for Information Interchange (ASCII, 아스키) - 초창기 American National Standards Institute (ANSI) 에서 제시한 표준 코드 체계 - 각 문자..