시작하며삼성전자 SW 역량테스트 B형은 라이브러리를 사용할 수 없는 대신 Reference Code를 제공합니다. 제가 구현한 알고리즘들은 기본적으로 Reference Code를 바탕으로 하며 이해하는 과정에서 주석을 달며 정리했습니다. 구현 코드는 실제 시험에서 사용할 때는 달라질 수 있으며 각자에게 맞는 방식으로 구현하시는 것을 추천합니다. 이진 검색 알고리즘(Binary Search)① 이진 검색 알고리즘(Binary Search)는 오름차순으로 정렬된 리스트에서 특정한 값의 위치를 찾는 알고리즘입니다. 처음 중간의 값을 임의의 값으로 선택하여, 그 값과 찾고자 하는 값의 크고 작음을 비교하는 방식입니다. 처음 선택한 중간값보다 찾고자 하는 값이 크면 중간값은 새로운 최댓값이 되며, 작으면 중간값은..
연결 리스트(LinkedList) ① 연결 리스트(LinkedList)는 각 노드(Node)가 데이터와 포인터를 가지고 한 줄로 연결되어 있는 방식으로 데이터를 저장하는 자료구조입니다. 아래 소스코드에서 구현한 연결 리스트는 각 노드가 데이터를 가지고 이전 노드와 다음 노드의 주소 값 2개를 저장하는 이중 연결 리스트(Dobly LinkedList) 구조입니다. 여기서 노드는 Node라는 클래스로 선언되어 있고 데이터(data), 이전 노드(prev), 다음 노드(next)로 구성되어 있습니다. ② 아래 소스코드에서 연결 리스트와 관련된 함수들은 다음과 같습니다. addFirst(int data): 리스트의 맨 앞에 data를 추가하는 함수 addLast(int data): 리스트의 맨 뒤에 data를 ..
스택(Stack) ① 스택(Stack)는 가장 마지막에 들어간 데이터가 먼저 나오는 LIFO(Last In First Out) 구조를 가지고 있습니다. 아래 소스코드에서 1차원 배열로 스택을 구현하였고 스택 관련 함수들은 다음과 같습니다. stackIsEmpty(): 스택이 비어있는지 판단하는 함수 stackIsFull(): 스택에 더이상 들어갈 공간이 없는지 판단하는 함수 size(): 스택에 들어가있는 데이터의 개수를 return하는 함수 push(int value): 스택에 value값을 저장하는 함수 peek(): 스택에 가장 마지막에 들어간 데이터를 return하는 함수 pop(): 스택에 가장 마지막에 들어간 데이터를 return하고 삭제하는 함수 ② 아래 소스코드의 맨 아래 주석 부분을 보면..
시작하며 삼성전자 SW 역량테스트 B형은 라이브러리를 사용할 수 없는 대신 Reference Code를 제공합니다. 제가 구현한 자료구조들은 기본적으로 Reference Code를 바탕으로 하며 이해하는 과정에서 주석을 달며 정리했습니다. 구현 코드는 실제 시험에서 사용할 때는 달라질 수 있으며 각자에게 맞는 방식으로 구현하시는 것을 추천합니다. 큐(Queue) ① 큐(Queue)는 먼저 집어넣은 데이터가 먼저 나오는 FIFO(First In First Out) 구조를 가지고 있습니다. 아래 소스코드에서 1차원 배열로 큐를 구현하였고 큐 관련 함수들은 다음과 같습니다. queueIsEmpty(): 큐 안이 비어있는지 판단하는 함수 queueIsFull(): 1차원 배열의 최대 크기를 벗어나면 안 되기에 ..
문제 https://www.acmicpc.net/problem/17837 17837번: 새로운 게임 2 재현이는 주변을 살펴보던 중 체스판과 말을 이용해서 새로운 게임을 만들기로 했다. 새로운 게임은 크기가 N×N인 체스판에서 진행되고, 사용하는 말의 개수는 K개이다. 말은 원판모양이고, 하나의 말 위에 다른 말을 올릴 수 있다. 체스판의 각 칸은 흰색, 빨간색, 파란색 중 하나로 색칠되어있다. 게임은 체스판 위에 말 K개를 놓고 시작한다. 말은 1번부터 K번까지 번호가 매겨져 있고, 이동 방향도 미리 정해져 있다. 이동 방향은 위, 아래, 왼쪽, 오른쪽 www.acmicpc.net 문제 이해 백준의 삼성 SW 역량 테스트 기출문제집에 있는 새로운 게임 2 문제입니다. 체스판과 말에 대한 정보가 주어지고..
- Total