Category

MockAStudy

하나로

4 분 소요

1. 핵심 개념 및 근거

창용 마을 무리의 개수

3 분 소요

1. 문제 접근 방법 및 아이디어 이 문제는 여러 명의 사람이 있고, 그들 사이의 관계가 주어질 때, 총 몇 개의 독립된 그룹이 형성되는가?를 구합니다.

서로소 집합

3 분 소요

1. 문제 접근 방법 및 아이디어 이 문제는 여러 개의 원소가 있을 때, 이들을 합치거나 같은 그룹에 속해 있는지 확인하는 과정을 효율적으로 처리하는 것이 핵심입니다. 독립된 원소 생성 처음에는 모든 숫자가 각각 자기 자신만을 원소로 갖는 집합이 됩니다. ...

파핑파핑 지뢰찾기

6 분 소요

1. 문제 접근 방법 및 아이디어 이 문제의 핵심은 “어떤 칸을 먼저 눌러야 이득인가?”를 판단하는 것입니다.

상호의 배틀필드

6 분 소요

1. 문제 접근 방법 및 아이디어 초기 상태 파악 2차원 배열을 입력받으며 전차의 초기 위치(r,c)와 방향(d)을 저장합니다. 명령어 해석 문자열로 주어진 명령을 순차적으로 읽으며 Move와 shoot을 분기 처리합니...

현주가 좋아하는 제곱근 놀이

2 분 소요

1. 문제 접근 방법 및 아이디어 이 문제의 핵심은 숫자 N을 2로 만드는 가장 빠른 방법을 찾는 것입니다. 그리디 N이 완전제곱수라면 무조건 루트를 씌우는 것이 이득입니다. 숫자가 비약적으로 작아지기 때문입니다. 점프 ...

규영이와 인영이의 카드게임

4 분 소요

1. 문제 접근 방법 및 아이디어 이 문제는 규영이의 카드 순서는 고정되어 있고, 인영이가 가진 9장의 카드를 어떤 순서로 내느냐에 따라 승패가 결정되는 문제입니다. 데이터 분리 전체 1 ~ 18 카드 중 규영이가 가진 9장을 제외한 나머지 9장을 인영이의...

햄스터

4 분 소요

1. 문제 접근 방법 및 아이디어 이 문제는 모든 가능한 햄스터의 배치 중 조건을 만족하면서 합이 최대인 경우를 찾는 것이 핵심입니다. 배치 생성 각 우리(1 ~ N)에 들어갈 수 있는 햄스터 수는 0마리부터 X까지 입니다. 모든 경우의 ...

햄버거 다이어트

2 분 소요

1. 문제 접근 및 아이디어 이 문제는 주어진 재료들을 사용하거나, 사용하지 않거나를 결정하여 제한 칼로리 내에서 최대 점수를 뽑아내는 것이 핵심입니다. 입력 데이터 구조화 각 재료의 점수와 칼로리를 쌍으로 묶어 저장합니다. 선택의 기로 ...

수제 버거 장인

3 분 소요

1. 문제 접근 방법 및 순서 이 문제는 특정 재료들을 함게 넣을 수 없다는 제약 조건이 걸린 부분 집합 구하기 문제입니다. 제약 사항 정리 인접 행렬을 활용해서 어떤 재료 조합이 불가능한지 저장합니다. 재귀적 탐색 1...

Ladder1

2 분 소요

1. 문제 접근 및 아이디어 사다리 타기의 핵심은 좌/우 길이 있으면 무조건 꺽어야 한다 것입니다. 역발상 (Bottom-up) 모든 출발점에서 시작해 도착점을 찾는 것보다, 도착점에서 시작해 위로 올라가 0행의 열 번호를 찾는 것이 훨씬 빠릅니다. ...

사칙연산 유효성 검사

1 분 소요

1. 문제 접근 방법 및 순서 핵심 아이디어 연산자(+,-,*,/): 반드시 자식 노드를 가집니다. 숫자: 자식 노드가 없는 단말 노드여야 합니다.

맨 위로 이동 ↑

AlgorithmStudy

배열 복사 방법 공부

3 분 소요

코딩 테스트를 할 때 배열을 복사하는 경우가 많습니다. c/c++에서는 memcpy과 copy 두 가지의 배열 복사 함수를 제공합니다.

백준 모르는 문제를 만났을 때 대처법

최대 1 분 소요

백준에서 문제를 풀면서 해결하기 어려운 문제를 만나는 경우가 많습니다. 최소 1~2시간 문제에 대해서 고민하고, 안될 때 사용하는 방법입니다.

순열과 조합 공부

5 분 소요

이 글은 순열과 조합을 재귀로 구현한 것을 정리한 내용입니다.

배열 초기화 방법 공부

2 분 소요

코딩 테스트를 할 때 배열을 선언하고 초기화 하는 경우가 많습니다. 전역 변수로 선언하면 직접 초기화할 필요가 없지만, 한 번 실행 후 테스트 케이스가 여러 개인 경우, 배열을 매 케이스마다 초기화할 필요가 있습니다. c/c++에서는 이를 방지하기 위해 memset과 fill 두...

방향 배열(Direction Array)

최대 1 분 소요

방향 배열 2차원 이상의 격자 혹은 좌표 공간에서 인접 위치로 이동해야 할 때 각 방향을 일정한 규칙으로 정의해두는 배열 상, 하, 좌, 우 이동에 대한 조건문을 따로 처리할 필요 없이 하나의 반복문으로 현재 좌표 (x, y)에서 원하는 모든 방향의 탐색이 가능

BFS/DFS 공부

3 분 소요

그래프 표현 그래프는 그림을 이용하여 표현하는 것으로 가장 자연스럽고 이해하기에 가장 쉬운 방법이다. 그러나 컴퓨터는 그림으로 표현된 정보를 이용할 수 없기 때문에 인접 행렬이나 인접 리스트에 의해 표현된다.

맨 위로 이동 ↑

BFSsDFS

백준 1260 DFS와 BFS 인접 리스트로 풀이(BFS/DFS)

3 분 소요

문제 https://www.acmicpc.net/problem/1260 다시 푸는 이유 컴퓨터가 이해할 수 있는 그래프 표현은 인접 행렬이나 인접 리스트를 사용한다. 이전 문제 풀이에서는 인접 행렬을 사용했기 때문에 이번에는 인접 리스트를 사용해서 그래프를 표현할 것이다.

백준 1260 DFS와 BFS (BFS/DFS)

3 분 소요

문제 https://www.acmicpc.net/problem/1260 문제내용 그래프를 DFS로 탐색한 결과와 BFS로 탐색한 결과를 출력하는 프로그램을 작성하시오. 단, 방문할 수 있는 정점이 여러 개인 경우에는 정점 번호가 작은 것을 먼저 방문하고, 더 이상 방문할 수 있는 ...

맨 위로 이동 ↑

C_CPP

Priority Queue 기본 사용법 및 예제

3 분 소요

Priority Queue의 개념 일반적인 큐(Queue)는 먼저 집어넣은 데이터가 먼저 나오는 FIFO 구조로 저장하는 선형 자료구조입니다. 하지만 우선순위 큐(Priority Queue)는 들어간 순서에 상관없이 우선순위가 높은 데이터가 먼저 나오는 형태의 자료구조입니...

Vector 기본 사용법 및 예제

2 분 소요

Vector의 개념 자동으로 메모리가 할당되는 배열입니다. vector를 생성하면 메모리 heap에 생성되며 동적할당됩니다. 배열처럼 최대 크기가 정해져 있는 것이 아닌, 필요에 따라 유동적으로 확장되는 배열입니다. 배열에 비해 속도가 떨어지지만 메모리를 효율적으로...

Deque 기본 사용법 및 예제

1 분 소요

Deque의 개념 Double Ended Queue의 줄임말로, 양쪽 끝에서 삽입과 삭제가 가능한 선형 자료구조입니다.

Queue 기본 사용법 및 예제

최대 1 분 소요

Queue의 개념 대표적인 FIFO(First-In First-Out) 방식입니다. 한쪽 끝에서 삽입이 일어나고 반대쪽 끝에서 삭제가 일어나는 선형 리스트입니다.

맨 위로 이동 ↑

Graph

위상 정렬 공부 (java)

2 분 소요

위상 정렬 알고리즘 순서가 정해져있는 작업을 차례로 수행해야 할 때 그 순서를 결정해주기 위해 사용하는 알고리즘입니다. 사이클이 없는 방향 그래프의 모든 노드를 방향성에 거스르지 않도록 순서대로 나열하는 것을 의미합니다. 모든 원소를 방문하기 전에 큐가 비게 된다면 사...

벨만-포드 알고리즘 공부

3 분 소요

벨만-포드 알고리즘 벨만-포드 알고리즘은 특정 출발 노드에서 다른 모든 노드까지의 최단 경로를 구하는 알고리즘입니다. 다익스트라 알고리즘과 달리 음수 간선이 포함된 상황에서 최단 거리 문제를 해결할 수 있습니다. 전체 그래프에서 음수 사이클 존재...

플로이드-워셜 알고리즘 공부

3 분 소요

플로이드-워셜 알고리즘 플로이드-워셜 알고리즘은 모든 노드에서 다른 모든 노드까지 최단 경로를 구하는 알고리즘입니다. 시간복잡도는 O(N^3)입니다. 이 글은 플로이드-워셜 알고리즘의 동작 과정과 코드 구현 방법에 대해서 정리한 내용입니다...

다익스트라 알고리즘 공부

7 분 소요

다익스트라 알고리즘 다익스트라 알고리즘은 최단 거리를 구하는 알고리즘입니다. 시간복잡도는 O(ElogE)입니다. 특정한 노드에서 출발하여 다른 모든 노드로 가는 최단 경로를 계산합니다. 음의 간선이 없을 때 정상적으로 ...

크루스칼 알고리즘 공부

3 분 소요

크루스칼 알고리즘 최소 신장 트리를 만들기 위한 알고리즘입니다. 시간복잡도는 O(ElogE)입니다. 이 글은 크루스칼 알고리즘의 동작 과정, 코드 구현 방법에 대해서 정리한 내용입니다.

그래프 표현 공부

5 분 소요

그래프 표현 방법 그래프 알고리즘을 이해하기 위해서 그래프 표현 방법을 공부했습니다. 그래프를 표현하는 방법은 인접 행렬, 인접 리스트, 간선 리스트로 3가지가 있습니다. 이 글은 이 3가지 방법에 대해서 정리한 내용입니다.

유니온 파인드 공부

4 분 소요

유니온 파인드 개념 여러 개의 노드의 노드가 존재할 때 두개의 노드를 선택해서 현재 이 두 노드가 서로 같은 그래프에 속하는지 판별하는 알고리즘입니다. 그래프에서는 그래프의 사이클이 생성되었는지 판별하는 알고리즘으로 사용됩니다. 이 글은 유니온 파이드의 동작 원리와 그...

맨 위로 이동 ↑

BoardFighter

맨 위로 이동 ↑

MockATest

[모의 SW 역량테스트] 특이한 자석

8 분 소요

1. 문제 접근 방법 및 아이디어 이 문제의 핵심 아이디어는 영향력이 전파되는 방향과 실제 회전 처리를 분리하는 것 입니다. 방향성 확인 특정 자석이 회전할 때, 왼쪽과 오른쪽으로 가며 인접한 자석들과의 접점(맞닿은 극)이 서로 다른지 확인하여 회전 여부를...

[모의 SW 역량테스트] 디저트 카페 공부

5 분 소요

1. 문제 접근 방법 및 접근 순서 이 문제는 임의의 한 지점에서 출발해 사각형 모양을 그리며 제자리로 돌아오는 경로 중, 중복되는 디저트 종류 없이 가장 많은 디저트를 먹는 경로를 찾는 것이 핵심입니다.

맨 위로 이동 ↑

assignment

맨 위로 이동 ↑

work2lern

맨 위로 이동 ↑

UnityStudy

맨 위로 이동 ↑

BackTracking

백트래킹 공부

1 분 소요

백트래킹 백트래킹은 코딩 테스트에서 자주 출제되는 유형 중 하나로, 가능한 모든 경우의 수를 탐색하여 해답을 찾는 알고리즘입니다. 해당 글은 백트래킹 문제를 만났을 때 접근하는 방법을 정리했습니다.

백준 15649 N과 M (1) 풀이 (Backtracking)

3 분 소요

문제 https://www.acmicpc.net/problem/15649 문제내용 자연수 N과 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. 1부터 N까지 자연수 중에서 중복 없이 M개를 고른 수열

맨 위로 이동 ↑

TwoPointer

투 포인터 공부

4 분 소요

투 포인터 두 개의 포인터를 만들어서, 각각이 가리키는 원소에 의미를 부여하여 요구하는 문제를 해결하는 알고리즘입니다. 정확히는 배열이나 리스트에서 두 개의 포인터를 사용하여 특정 조건을 만족하는 구간을 효율적으로 탐색하는 알고리즘입니다. 일반적으로 정렬되어 있을 때 사용...

백준 1806 부분합 풀이 (Two-pointer)

4 분 소요

문제 https://www.acmicpc.net/problem/1806 문제내용 10,000 이하의 자연수로 이루어진 길이 N짜리 수열이 주어진다. 이 수열에서 연속된 수들의 부분합 중에 그 합이 S 이상이 되는 것 중, 가장 짧은 것의 길이를 구하는 프로그램을 작성하시오.

맨 위로 이동 ↑

AndroidBuild

유니티 모바일 빌드 방법

1 분 소요

유니티로 제작한 게임을 안드로이드 앱으로 빌드하는 방법을 알고 싶어서 조사했습니다.

맨 위로 이동 ↑

CSharp

맨 위로 이동 ↑

UnrealStudy

맨 위로 이동 ↑

Simulation

맨 위로 이동 ↑

Greedy

맨 위로 이동 ↑

BinarySearch

백준 1920 수 찾기 풀이 (Binary Search)

5 분 소요

문제 https://www.acmicpc.net/problem/1920 문제내용 N개의 정수 A[1], A[2], …, A[N]이 주어져 있을 때, 이 안에 X라는 정수가 존재하는지 알아내는 프로그램을 작성하시오.

맨 위로 이동 ↑

DP

DP 공부

1 분 소요

DP(Dynamic Programming, 동적 계획법) 복잡한 문제를 더 작은 하위 문제로 나누어 해결하는 알고리즘 설계 기법입니다. 해당 글은 DP 문제를 만났을 때 접근하는 방법을 정리한 것 입니다.

맨 위로 이동 ↑

MockAPast

몬스터 헌터

5 분 소요

1. 문제 접근 방법 및 순서 이 문제는 최단 경로 탐색과 순열, 그리고 조건부 방문이 결합된 시뮬레이션 및 최적화 문제입니다. 외판원 순회 문제의 변형이라고 할 수 있습니다.

맨 위로 이동 ↑