분류 전체보기
[프로그래머스] (2020 KAKAO BLIND RECRUITMENT) 자물쇠와 열쇠 (Java)
프로그래머스 Level 3 자물쇠와 열쇠 (자바) 출처 programmers.co.kr/learn/courses/30/lessons/60059 코딩테스트 연습 - 자물쇠와 열쇠 [[0, 0, 0], [1, 0, 0], [0, 1, 1]] [[1, 1, 1], [1, 1, 0], [1, 0, 1]] true programmers.co.kr 문제 고고학자인 튜브는 고대 유적지에서 보물과 유적이 가득할 것으로 추정되는 비밀의 문을 발견하였습니다. 그런데 문을 열려고 살펴보니 특이한 형태의 자물쇠로 잠겨 있었고 문 앞에는 특이한 형태의 열쇠와 함께 자물쇠를 푸는 방법에 대해 다음과 같이 설명해 주는 종이가 발견되었습니다. 잠겨있는 자물쇠는 격자 한 칸의 크기가 1 x 1인 N x N 크기의 정사각 격자 형태이고..
[백준 14888] 연산자 끼워넣기 (자바)
백준 14888번 연산자 끼워넣기 (자바) 출처 www.acmicpc.net/problem/14888 14888번: 연산자 끼워넣기 첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수, www.acmicpc.net 문제 N개의 수로 이루어진 수열 A1, A2, ..., AN이 주어진다. 또, 수와 수 사이에 끼워넣을 수 있는 N-1개의 연산자가 주어진다. 연산자는 덧셈(+), 뺄셈(-), 곱셈(×), 나눗셈(÷)으로만 이루어져 있다. 우리는 수와 수 사이에 연산자를 하나씩 넣어서, 수식을 하나 만들 수 있다. 이때, 주..
[백준 1715] 카드 정렬하기 (자바)
백준 1715번 카드 정렬하기 (자바) 출처 www.acmicpc.net/problem/1715 1715번: 카드 정렬하기 정렬된 두 묶음의 숫자 카드가 있다고 하자. 각 묶음의 카드의 수를 A, B라 하면 보통 두 묶음을 합쳐서 하나로 만드는 데에는 A+B 번의 비교를 해야 한다. 이를테면, 20장의 숫자 카드 묶음과 30장 www.acmicpc.net 문제 정렬된 두 묶음의 숫자 카드가 있다고 하자. 각 묶음의 카드의 수를 A, B라 하면 보통 두 묶음을 합쳐서 하나로 만드는 데에는 A+B 번의 비교를 해야 한다. 이를테면, 20장의 숫자 카드 묶음과 30장의 숫자 카드 묶음을 합치려면 50번의 비교가 필요하다. 매우 많은 숫자 카드 묶음이 책상 위에 놓여 있다. 이들을 두 묶음씩 골라 서로 합쳐나간..
[자료구조] 스택, 큐, 힙
스택 스택의 개념 선형 자료구조의 일종 Last In First out(LIFO) 구조 차곡차곡 쌓이는 구조 나중에 들어간 원소가 먼저 나온다. 스택의 특징 같은 구조의 같은 크기의 자료를 정해진 방향으로만 쌓을 수 있고, top으로 정한 곳을 통해서만 접근 가능하다. 삭제는 top을 통해서만 가능하다. 스택의 연산 삭제 (pop()) : 스택에서 가장 위에 있는 항목을 제거한다. [O(1)] 삽입 (push(item)) : item 하나를 스택의 가장 윗부분에 추가한다. [O(1)] 읽기 (peek()) : 스택의 가장 위에 있는 항목을 반환한다. [O(1)] 스택 포인터(SP, Stack Pointer) push나 pop을 할 때 해당 값의 위치를 알고 있어야 하는데 스택 포인터가 위치를 기억한다. ..
[자료구조] Array vs List, ArrayList vs LinkedList
배열(Array) → 크기를 정해서 사용할 수 있는 연속적인 저장 공간 Array 선언 시 같은 자료형으로 메모리 상에 연속적으로 데이터를 저장할 수 있는 공간이 확보된다. 배열 초기화 시 메모리에 할당되어 ArrayList보다 속도가 빠르다. 시간 복잡도는 O(1) 단점 크기가 고정적이므로 고정된 크기보다 더 많은 데이터를 받으려는 경우 새로운 공간을 만들어 기존 데이터를 복사해주어야 한다. 효율적인 탐색을 위해 Array 데이터 사이에 비는 공간을 없이 만든다면 Array 중간에 데이터를 추가하거나 삭제할 때 빈 공간이 없도록 다수의 데이터를 옮겨야 한다. List(Linear List) → 데이터의 크기가 정해져 있지 않고, 삽입 삭제가 많이 일어나며, 검색이 적은 경우 유리. 항목들은 순서 또는 ..
[컴퓨터 구조] 캐시 메모리(Cache Memory)
캐시 메모리 속도가 빠른 장치와 느린 장치에서 속도 차이에 따른 병목 현상을 줄이기 위한 메모리입니다. CPU가 주기억장치에서 저장된 데이터를 읽어올 때, 자주 사용하는 데이터를 캐시 메모리에 저장한 뒤, 다음에 이용할 때 주기억장치가 아닌 캐시 메모리에서 먼저 가져오면서 속도를 향상시킵니다. 속도라는 장점을 얻지만, 용량이 적고 비용이 비쌉니다. CPU에는 캐시 메모리가 2~3개 정도 사용됩니다. * 듀얼 코어 프로세서의 캐시 메모리 → 각 코어마다 독립된 L1 캐시 메모리를 가지고, 두 코어가 공유하는 L2 캐시 메모리가 내장된다. L1 : CPU 내부에 존재 L2 : CPU와 RAM 사이에 존재 L3 : 보통 메인보드에 존재한다고 함 * 디스크 캐시 : 주기억장치(RAM)와 보조기억장치(하드디스크)..
[컴퓨터 구조] CPU의 구조 및 작동 원리
CPU가 하는 일 Central Processing Unit (중앙 처리 장치) → 프로그램을 실행하기 위해 메인 메모리에서 명령어를 인출하여 해독하고 실행한다. 연산 덧셈, 뺄셈, 곱셈 등의 산술 연산과 논리곱, 논리합, 부정 등의 논리 연산을 수행 제어 명령어를 순서대로 실행할 수 있도록 제어 저장 연산에 필요한 데이터, 연산 결과, 명령어 주소 등을 임시로 저장 CPU의 구조 레지스터(Register) CPU 내부에 있는 메모리 명령어 주소, 코드, 연산에 필요한 데이터, 연산 결과 등을 임시로 저장 고속 기억장치 다양한 종류가 있음(PC, IR, MBR 등) 제어 장치(Control Unit) 각 장치들의 동작을 결정하는 신호를 보낸다. 주기적장치에서 프로그램 명령어를 꺼내 해독하고, 그 결과에 ..
[백준 1920] 수 찾기 (자바)
백준 1920번 수 찾기 (자바) 출처 www.acmicpc.net/problem/1920 1920번: 수 찾기 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들 www.acmicpc.net 문제 N개의 정수 A[1], A[2], …, A[N]이 주어져 있을 때, 이 안에 X라는 정수가 존재하는지 알아내는 프로그램을 작성하시오. 입력 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000..