분류 전체보기240 [Java] HashMap, LinkedHashMap, TreeMap, Hashtable 차이 '코딩인터뷰'와 '유튜브'를 참고하여 작성하였습니다. HashMap, LinkedHashMap, TreeMap, Hashtable 네 가지 모두 키(key)에서 값(value)으로의 대응 관계가 있고 키를 기준으로 순회할 수 있다. 이 클래스들의 가장 큰 차이점은 시간 복잡도와 키가 놓이는 순서에 있다. HashMap 검색과 삽입에 O(1) 시간이 소요된다. 키의 순서는 무작위로 섞여 있다. 구현은 연결리스트로 이루어진 배열로 되어 있다. null key와 null value를 모두 허용 LinkedHashMap 검색과 삽입에 O(1) 시간이 소요된다. 키의 순서는 삽입한 순서대로 정렬되어 있다. 구현은 양방향 연결 버킷(double-linked bucket)으로 구현되어 있다. TreeMap 검색과 삽.. 2021. 4. 3. [Codility] Lesson 2 Arrays : CyclicRotation 문제 CyclicRotation coding task - Learn to Code - Codility Rotate an array to the right by a given number of steps. app.codility.com 결과 int[] Test results - Codility An array A consisting of N integers is given. Rotation of the array means that each element is shifted right by one index, and the last element of the array is moved to the first place. For example, the rotation of array A = [3, 8, 9,.. 2021. 4. 2. [Codility] Lessons 1 Iterations : BinaryGap 문제 BinaryGap coding task - Learn to Code - Codility Find longest sequence of zeros in binary representation of an integer. app.codility.com 결과 Test results - Codility A binary gap within a positive integer N is any maximal sequence of consecutive zeros that is surrounded by ones at both ends in the binary representation of N. For example, number 9 has binary representation 1001 and contains a bi.. 2021. 4. 2. [OS] 프로세스 이 글은 '그림으로 배우는 구조와 원리 운영체제' 개정3판을 참고하여 작성하였습니다. 첨부된 이미지는 직접 제작했습니다. 목차 1. 프로세스 개념과 상태 변화 개념 필요자원 프로그램과 프로세스 차이 관점에 따른 프로세스 프로세스 종류 프로세스 상태 변화와 상태 정보 프로세스 제어 블록 프로세스의 문맥 교환 2. 프로세스의 관리 프로세스의 구조 프로세스의 생성 프로세스의 종료 프로세스의 제거 프로세스의 중단과 재시작 프로세스의 우선순위 변경 프로세스의 문맥 교환 1. 프로세스 개념과 상태 변화 개념 일반적인 프로세스 정의는 '실행 중인 프로그램'이다. 실행 중이라는 의미는 디스크에 있던 프로그램을 메모리에 적재하여 운영체제의 제어를 받는 상태가 되었다는 것이다. 이는 자신만의 메모리 영역(주소 공간)이 있.. 2021. 4. 2. Stack 두 개로 Queue 처럼 활용하기 Stack 스택은 선입후출(FILO: First in, Last out)이다. 4 3 2 1 순서대로 push 된다면, pop 연산시 맨 마지막으로 들어온 1이 제거된다. Queue 큐는 선입선출(FIFO: First in, First out)이다. 4 3 2 1 순서대로 push 된다면, pop 연산시 맨 처음으로 입력된 4가 제거된다. Stack 두 개로 Queue 처럼 활용하기 두 개의 스택을 inbox, outbox로 나누어 사용한다. inbox : push 연산시 원소를 추가 outbox : pop 연산시 원소를 제거 c++ 코드 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 32 33 34 .. 2021. 3. 11. [BOJ] #1522 문자열 교환 시간 제한 메모리 제한 정답 비율 2 초 128 MB 43.590% 1522번: 문자열 교환 a와 b로만 이루어진 문자열이 주어질 때, a를 모두 연속으로 만들기 위해서 필요한 교환의 회수를 최소로 하는 프로그램을 작성하시오. 이 문자열은 원형이기 때문에, 처음과 끝은 서로 인접해 www.acmicpc.net 문제 a와 b로만 이루어진 문자열이 주어질 때, a를 모두 연속으로 만들기 위해서 필요한 교환의 회수를 최소로 하는 프로그램을 작성하시오. 이 문자열은 원형이기 때문에, 처음과 끝은 서로 인접해 있는 것이다. 예를 들어, aabbaaabaaba이 주어졌을 때, 2번의 교환이면 a를 모두 연속으로 만들 수 있다. 첫째 줄에 문자열이 주어진다. 문자열의 길이는 최대 1,000이다. 첫째 줄에 필요한 교.. 2021. 3. 5. [C++] 공백 포함 문자열 입력 | stringstream 문자열 추출 문자열 입력 먼저, 공백을 포함한 문자열을 한 줄로 입력받는 방법에 대해 알아본다. 1 2 3 4 5 6 7 // string 공백 포함 문자열 입력 string str; getline(cin, str); // char 공백 포함 문자열 입력 char ch[100]; cin.getline(ch, 100); cs string 자료형을 이용하기 위해서는 헤더 가 필요하다. 첫 번째 인자로 istream 객체 두 번째 인자로 입력 받을 string 변수 이름 세 번째 인자로 delimitChar(생략가능. default '\n') delimitChar에 ' '를 준다면, 공백 기준으로 끊어 입력을 받을 수 있다. char 자료형을 사용할 때는 cin.geline을 사용하여 한줄로 입력받을 수 있다. 이 때 헤.. 2021. 3. 2. [BOJ] #3653 영화 수집 시간 제한 메모리 제한 정답 비율 1 초 256 MB 43.106% 3653번: 영화 수집 각 테스트 케이스에 대해서 한 줄에 m개의 정수를 출력해야 한다. i번째 출력하는 수는 i번째로 영화를 볼 때 그 영화의 위에 있었던 DVD의 개수이다. 상근이는 매번 영화를 볼 때마다 본 영화 DVD www.acmicpc.net 문제 상근이는 영화 DVD 수집가이다. 상근이는 그의 DVD 콜렉션을 쌓아 보관한다. 보고 싶은 영화가 있을 때는, DVD의 위치를 찾은 다음 쌓아놓은 콜렉션이 무너지지 않게 조심스럽게 DVD를 뺀다. 영화를 다 본 이후에는 가장 위에 놓는다. 상근이는 DVD가 매우 많기 때문에, 영화의 위치를 찾는데 시간이 너무 오래 걸린다. 각 DVD의 위치는, 찾으려는 DVD의 위에 있는 영화의 개.. 2021. 2. 17. [BOJ] #2042 구간 합 구하기 시간 제한 메모리 제한 정답 비율 2 초 256 MB 23.830 % 2042번: 구간 합 구하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)과 M(1 ≤ M ≤ 10,000), K(1 ≤ K ≤ 10,000) 가 주어진다. M은 수의 변경이 일어나는 횟수이고, K는 구간의 합을 구하는 횟수이다. 그리고 둘째 줄부터 N+1번째 줄 www.acmicpc.net 문제 해결 key point, 세그먼트 트리 2021/02/15 - [🔥 PS(Problem Solving) 🔥/BOJ] - [BOJ] #10868 최솟값 2021/02/15 - [🔥 PS(Problem Solving) 🔥/BOJ] - [BOJ] #11505 구간 곱 구하기 위의 두 문제와 방식은 동일하지만 이 문제는 구간의 합을 구하.. 2021. 2. 15. 이전 1 ··· 6 7 8 9 10 11 12 ··· 27 다음