목록Coding Test (35)
mooni
Q. 문제1 x 1 크기의 칸들로 이루어진 직사각형 격자 형태의 미로에서 탈출하려고 합니다. 각 칸은 통로 또는 벽으로 구성되어 있으며, 벽으로 된 칸은 지나갈 수 없고 통로로 된 칸으로만 이동할 수 있습니다. 통로들 중 한 칸에는 미로를 빠져나가는 문이 있는데, 이 문은 레버를 당겨서만 열 수 있습니다. 레버 또한 통로들 중 한 칸에 있습니다. 따라서, 출발 지점에서 먼저 레버가 있는 칸으로 이동하여 레버를 당긴 후 미로를 빠져나가는 문이 있는 칸으로 이동하면 됩니다. 이때 아직 레버를 당기지 않았더라도 출구가 있는 칸을 지나갈 수 있습니다. 미로에서 한 칸을 이동하는데 1초가 걸린다고 할 때, 최대한 빠르게 미로를 빠져나가는데 걸리는 시간을 구하려 합니다.미로를 나타낸 문자열 배열 maps가 매개변수..
Q. 문제틱택토는 두 사람이 하는 게임으로 처음에 3x3의 빈칸으로 이루어진 게임판에 선공이 "O", 후공이 "X"를 번갈아가면서 빈칸에 표시하는 게임입니다. 가로, 세로, 대각선으로 3개가 같은 표시가 만들어지면 같은 표시를 만든 사람이 승리하고 게임이 종료되며 9칸이 모두 차서 더 이상 표시를 할 수 없는 경우에는 무승부로 게임이 종료됩니다.할 일이 없어 한가한 머쓱이는 두 사람이 하는 게임인 틱택토를 다음과 같이 혼자서 하려고 합니다.혼자서 선공과 후공을 둘 다 맡는다.틱택토 게임을 시작한 후 "O"와 "X"를 혼자서 번갈아 가면서 표시를 하면서 진행한다.틱택토는 단순한 규칙으로 게임이 금방 끝나기에 머쓱이는 한 게임이 종료되면 다시 3x3 빈칸을 그린 뒤 다시 게임을 반복했습니다. 그렇게 틱택토 ..

비선형 자료구조란?비선형 자료구조는 데이터가 순차적으로 나열되지 않고, 요소 간의 관계가 복잡하고 계층적인 구조를 이루는 자료구조입니다. 대표적으로 트리(Tree)와 그래프(Graph)가 있습니다.1. 그래프 (Graph)정점(Vertex): 하나의 지점을 의미 (ex. 도시, 사람)간선(Edge): 정점 간의 연결 (ex. 도로, 친구 관계)방향성: 단방향 그래프, 양방향 그래프로 나뉨가중치(Weight): 간선에 부여된 비용 또는 거리2. 트리 (Tree)트리는 그래프의 일종으로, 계층적 구조를 가진 비선형 자료구조입니다.루트 노드: 최상위 노드리프 노드: 자식이 없는 노드내부 노드: 자식이 있는 노드서브트리: 어떤 노드를 루트로 하는 부분 트리주요 개념V(노드 수) - 1 = E(간선 수)깊이(De..

선형 자료구조란?선형 자료구조(Linear Data Structure)는 데이터가 일렬로 나열된 형태로 저장되는 자료구조입니다. 요소 간의 순서가 명확하며, 앞뒤 요소와의 관계를 기반으로 연산이 수행됩니다.1. 연결 리스트 (Linked List)데이터를 노드(Node)라는 단위로 저장하고, 포인터를 통해 다음 노드와 연결하는 방식의 자료구조입니다.삽입/삭제: O(1) (포인터만 조작하면 되므로 빠름)탐색: O(n) (선형 탐색 필요)종류싱글 연결 리스트: next 포인터만 존재 (한 방향으로만 순회)이중 연결 리스트: next, prev 포인터를 모두 가짐 (양방향 순회 가능)원형 이중 연결 리스트: 마지막 노드의 next가 헤드 노드를 가리킴, 원형 순회 가능2. 배열 (Array)같은 타입의 데이터..

자료구조란?자료구조(Data Structure)는 데이터를 효율적으로 저장, 수정, 삭제, 탐색할 수 있도록 도와주는 데이터의 집합 및 구조입니다. 알고리즘과 함께 사용되며, 문제를 해결하는 기반이 됩니다. 복잡도란?복잡도는 알고리즘이나 자료구조가 사용하는 시간(연산량)과 공간(메모리)을 측정하는 기준입니다. 1. 시간 복잡도(Time Complexity)입력 크기(n)에 따라 알고리즘이 실행되는 데 걸리는 시간 2. 공간 복잡도(Space Complexity)알고리즘이 실행될 때 필요로 하는 메모리 양int a[1004]; // 1004개의 int → 1004 * 4 byte = 4016 byte 빅오(Big-O) 표기법가장 영향력이 큰 항만을 남기고 상수와 하위 항을 제거한 표현법O(1) 자료구조에..

Q. 문제마인은 곡괭이로 광산에서 광석을 캐려고 합니다. 마인은 다이아몬드 곡괭이, 철 곡괭이, 돌 곡괭이를 각각 0개에서 5개까지 가지고 있으며, 곡괭이로 광물을 캘 때는 피로도가 소모됩니다. 각 곡괭이로 광물을 캘 때의 피로도는 아래 표와 같습니다.예를 들어, 철 곡괭이는 다이아몬드를 캘 때 피로도 5가 소모되며, 철과 돌을 캘때는 피로도가 1씩 소모됩니다. 각 곡괭이는 종류에 상관없이 광물 5개를 캔 후에는 더 이상 사용할 수 없습니다.마인은 다음과 같은 규칙을 지키면서 최소한의 피로도로 광물을 캐려고 합니다.사용할 수 있는 곡괭이중 아무거나 하나를 선택해 광물을 캡니다.한 번 사용하기 시작한 곡괭이는 사용할 수 없을 때까지 사용합니다.광물은 주어진 순서대로만 캘 수 있습니다.광산에 있는 모든 광물..
Q. 문제과제를 받은 루는 다음과 같은 순서대로 과제를 하려고 계획을 세웠습니다.과제는 시작하기로 한 시각이 되면 시작합니다.새로운 과제를 시작할 시각이 되었을 때, 기존에 진행 중이던 과제가 있다면 진행 중이던 과제를 멈추고 새로운 과제를 시작합니다.진행중이던 과제를 끝냈을 때, 잠시 멈춘 과제가 있다면, 멈춰둔 과제를 이어서 진행합니다.만약, 과제를 끝낸 시각에 새로 시작해야 되는 과제와 잠시 멈춰둔 과제가 모두 있다면, 새로 시작해야 하는 과제부터 진행합니다.멈춰둔 과제가 여러 개일 경우, 가장 최근에 멈춘 과제부터 시작합니다.과제 계획을 담은 이차원 문자열 배열 plans가 매개변수로 주어질 때, 과제를 끝낸 순서대로 이름을 배열에 담아 return 하는 solution 함수를 완성해주세요. * ..
Q. 문제x축과 y축으로 이루어진 2차원 직교 좌표계에 중심이 원점인 서로 다른 크기의 원이 두 개 주어집니다. 반지름을 나타내는 두 정수 r1, r2가 매개변수로 주어질 때, 두 원 사이의 공간에 x좌표와 y좌표가 모두 정수인 점의 개수를 return하도록 solution 함수를 완성해주세요.※ 각 원 위의 점도 포함하여 셉니다. * 문제풀이흐름1. x² + y² ≤ r² : 원 안에 존재, x² + y² ≥ r² : 원 밖에 존재, r1² ≤ x² + y² ≤ r2² : 두 원 사이에 존재의 개념을 활용2. 가능한 y의 개수 = max - min + 1을 누적3. 1사분면에 대해서만 계산했기 때문에 마지막에 * 4 하여 return A. 풀이function solution(r1, r2) { l..