[APS][C++] BOJ G4 1976번 여행 가자
APS/BOJ2025. 4. 18. 19:30[APS][C++] BOJ G4 1976번 여행 가자

https://www.acmicpc.net/problem/1976문제동혁이는 친구들과 함께 여행을 가려고 한다. 한국에는 도시가 N개 있고 임의의 두 도시 사이에 길이 있을 수도, 없을 수도 있다. 동혁이의 여행 일정이 주어졌을 때, 이 여행 경로가 가능한 것인지 알아보자. 물론 중간에 다른 도시를 경유해서 여행을 할 수도 있다. 예를 들어 도시가 5개 있고, A-B, B-C, A-D, B-D, E-A의 길이 있고, 동혁이의 여행 계획이 E C B C D 라면 E-A-B-C-B-C-B-D라는 여행경로를 통해 목적을 달성할 수 있다.도시들의 개수와 도시들 간의 연결 여부가 주어져 있고, 동혁이의 여행 계획에 속한 도시들이 순서대로 주어졌을 때 가능한지 여부를 판별하는 프로그램을 작성하시오. 같은 도시를 여..

[APS][CodeTree] 삼성 SW 역량 테스트 2023년 상반기 오후 1번 문제 - 메이즈 러너
APS/CodeTree2025. 4. 12. 23:10[APS][CodeTree] 삼성 SW 역량 테스트 2023년 상반기 오후 1번 문제 - 메이즈 러너

삼성 코딩테스트 기출 문제 설명: 메이즈 러너 | 코드트리 삼성 코딩테스트 기출 문제 설명: 메이즈 러너 | 코드트리삼성전자 코딩테스트 기출 문제 메이즈 러너의 상세 설명입니다. 문제 요구사항을 정확히 파악하고 효율적인 알고리즘을 설계해보세요.www.codetree.ai문제역시나... 길어서 생략... 위 링크에서 확인 가능합니다.입력출력풀이시뮬레이션(구현) 문제 ➡️ 문제에서 주어진 조건을 잘 살펴서 구현해야 한다.필요한 기능을 함수로 나눠서 구현 진행초기화 : 초기 미로와 참가자에 대한 정보를 입력받는 함수 (void init())참가자 이동 : 문제에서 주어진 조건을 고려하여 참가자가 이동하는 함수 (void move(int id))맵 회전 : 문제에서 주어진 조건에 맞는 영역을 찾아 해당 영역을 ..

[APS][CodeTree] 삼성 SW 역량 테스트 2023년 하반기 오전 1번 문제 - 왕실의 기사 대결
APS/CodeTree2025. 4. 12. 01:42[APS][CodeTree] 삼성 SW 역량 테스트 2023년 하반기 오전 1번 문제 - 왕실의 기사 대결

삼성 코딩테스트 기출 문제 설명: 왕실의 기사 대결 | 코드트리 삼성 코딩테스트 기출 문제 설명: 왕실의 기사 대결 | 코드트리삼성전자 코딩테스트 기출 문제 왕실의 기사 대결의 상세 설명입니다. 문제 요구사항을 정확히 파악하고 효율적인 알고리즘을 설계해보세요.www.codetree.ai문제문제는 생략... 위 링크에서 확인 가능합니다.입력출력풀이BFS(너비 우선 탐색) + 재귀 + 시뮬레이션(구현) 문제주어진 조건을 빠짐없이 구현하는 것이 핵심 ➡️ 문제에서 주어진 기능 별로 함수로 구현하자!init() : 배열 및 입력 정보 초기화checkMovable() : 선택된 기사가 움직일 수 있는지 체크move() : 조건에 따라 이동dmgCheck() : 이동이 완료된 후 데미지 체크코드세부 코드 설명필요한..

[APS][CodeTree] 삼성 SW 역량 테스트 2023년 상반기 오전 1번 문제 - 포탑 부수기
APS/CodeTree2025. 4. 12. 00:18[APS][CodeTree] 삼성 SW 역량 테스트 2023년 상반기 오전 1번 문제 - 포탑 부수기

삼성 코딩테스트 기출 문제 설명: 포탑 부수기 | 코드트리 삼성 코딩테스트 기출 문제 설명: 포탑 부수기 | 코드트리삼성전자 코딩테스트 기출 문제 포탑 부수기의 상세 설명입니다. 문제 요구사항을 정확히 파악하고 효율적인 알고리즘을 설계해보세요.www.codetree.ai문제문제가 너무 길어서 생략... 위 링크에서 확인 가능합니다.입력출력풀이BFS(너비 우선 탐색)를 이용한 최단 거리 + 시뮬레이션(구현) 문제주어진 조건을 따져가며, 함수를 이용하여 단계적으로 구현하는 것이 실수를 줄이는 법초기화(void init()) : 어떻게 초기화를 할 것인가? 포탑의 정보는 어떻게 받아올 것인가? 고민공격자 선정(Tower findAttacker()) : 문제에서 주어진 조건에 따라 공격 포탑 선택타겟 선정 (T..

[C언어] 배열과 포인터의 관계 (1차원 배열 & 2차원 배열)
Dev/C2025. 4. 8. 01:44[C언어] 배열과 포인터의 관계 (1차원 배열 & 2차원 배열)

C언어에서 포인터와 배열은 밀접한 관계를 가지고 있습니다. 이 글은 1차원 배열과 2차원 배열을 중심으로, 포인터와 배열의 관게에 대해 정리한 글입니다.1차원 배열과 포인터1차원 배열의 메모리 구조C 언어에서 1차원 배열을 선언하면, 해당 배열을 구성하는 모든 원소가 메모리에 연속적으로 배치각 원소마다 정해진 크기(데이터 타입의 크기)만큼 연속해서 배치#include int main(void) { int arr[5] = {10, 20, 30, 40, 50}; printf("배열 arr의 시작 주소 : %p\n", (void*)arr); for (int i = 0; i C 언어 표준에 따르면, 배열의 원소들은 연속된 메모리 공간에 차례로 배치단일 타입으로 선언된 1차원 배열의 원소들 사이에는 추가적..

[알고리즘] 다익스트라 알고리즘에서 최단 경로 기록
CS/알고리즘2025. 4. 6. 17:13[알고리즘] 다익스트라 알고리즘에서 최단 경로 기록

이 글은 다익스트라 알고리즘에서 최단 경로를 기록하는 방법에 대해 정리하였습니다.최단 경로를 기록하는 이유✅ 다익스트라 알고리즘은 기본적으로 시작 노드에서 각 노드까지의 최소 비용(거리)을 구하는 데 최적화된 알고리즘이다. 하지만 실제 문제에서는 최단 거리 뿐만 아니라 어떤 경로로 이동했는지도 필요한 경우가 존재한다.➡️ 지도 문제 : 도시 간 최단 거리와 구체적인 경로➡️ 네트워크 경로 제어 : 최소 비용 라우팅에 사용➡️ 최단 경로 관련 알고리즘 학습 : 문제 풀이 이해도 상승🌐 기본 다익스트라 알고리즘은 아래 글 참고https://devkuk.tistory.com/25 [알고리즘] 최단 경로 알고리즘 - 플러드 필(Flood Fill)과 다익스트라(Dijkstra)이 글은 BFS 알고리즘을 활용하..

[자료구조] 우선순위 큐(priority queue)의 정렬 안정성
CS/자료구조2025. 4. 6. 15:48[자료구조] 우선순위 큐(priority queue)의 정렬 안정성

C++ 표준 라이브러리인 std::priority_queue를 중심으로, 우선순위 큐가 정렬 안정성(stability)을 보장하지 않는 이유와 동작 방식을 정리한 글입니다.우선순위 큐와 정렬 안정성우선순위 큐 (priority queue)우선순위 큐는 가장 높은 우선 순위를 갖는 원소를 가장 먼저 꺼낼 수 있도록 하는 자료구조C++ 표준 라이브러리에서는 std::priority_queue 템플릿 클래스로 제공 ( 라이브러리 필요)내부적으로는 힙(heap)을 이용해 구현되어 있음우선순위 큐 기본 코드#include // 기본 예시std::priority_queue pq;pq.push(3);pq.push(10);pq.push(5);// top() = 10 (가장 큰 값)pq.pop(); // 1..

[APS][C++] BOJ G2 16920번 확장 게임 (feat. 우선순위 큐)
APS/BOJ2025. 4. 6. 14:36[APS][C++] BOJ G2 16920번 확장 게임 (feat. 우선순위 큐)

https://www.acmicpc.net/problem/16920문제구사과와 친구들이 확장 게임을 하려고 한다. 이 게임은 크기가 N×M인 격자판 위에서 진행되며, 각 칸은 비어있거나 막혀있다. 각 플레이어는 하나 이상의 성을 가지고 있고, 이 성도 격자판 위에 있다. 한 칸 위에 성이 두 개 이상인 경우는 없다. 게임은 라운드로 이루어져 있고, 각 라운드마다 플레이어는 자기 턴이 돌아올 때마다 성을 확장해야 한다. 제일 먼저 플레이어 1이 확장을 하고, 그 다음 플레이어 2가 확장을 하고, 이런 식으로 라운드가 진행된다. 각 턴이 돌아왔을 때, 플레이어는 자신이 가지고 있는 성을 비어있는 칸으로 확장한다. 플레이어 i는 자신의 성이 있는 곳에서 Si칸 만큼 이동할 수 있는 모든 칸에 성을 동시에 만든..

[PJT] PintOS 프로젝트 - PintOS 세팅
PJT2025. 4. 6. 04:23[PJT] PintOS 프로젝트 - PintOS 세팅

PintOS 프로젝트를 진행하며 정리한 글입니다. (아마 시리즈처럼 작성하지 않을까 싶은데.. 그냥 간단하게 프로젝트를 수행하면서 필요했던 내용들을 정리하는 느낌으로 작성할 예정입니다.)첫 시작으로 프로젝트를 진행하기 위해, PintOS 개발 환경을 세팅하였다. 이 글은 PintOS를 본격적으로 수행하기 전에 세팅하는 과정을 담고 있다.프로젝트 개요PintOS 프로젝트는 스탠포드 대학에서 운영체제 학습용으로 만들어진 OS인데, 이번에 내가 수행한 프로젝트는 PintOS-Kaist를 이용해서 진행하였다. 약간의 차이가 있다고 언급되어 있는데, 정확히 어떠한 차이가 존재하는지는 잘 모르겠다. 여튼 프로젝트는 PintOS-Kaist 버전을 사용하였고, PintOS-Kaist GitHub을 참고하였다.https..

[C언어] 포인터의 기본 개념
Dev/C2025. 4. 4. 01:41[C언어] 포인터의 기본 개념

C언어의 핵심이자 가장 중요한 개념 중 하나인 포인터의 기본 개념에 대해 정리한 글입니다.변수와 메모리, 그리고 주소의 개념변수와 메모리변수 (Variable)특정 데이터를 저장해두는 이름 (label)ex) int a = 10 ➡️ 변수 이름 = a | 값 = 10모든 변수들은 주소가 존재 ➡️ 변수 이름은 개발자(사람)을 위한 것이라면 주소는 컴퓨터를 위한 값메모리 (Memory)프로그램에서 사용하는 모든 변수들이 저장되는 위치 ➡️ 컴퓨터 메모리(램, RAM) 어딘가에 실제로 저장되어 있음변수가 선언되면, 해당 변수는 메모리 어딘가에 자료형의 크기만큼 공간을 차지하고 값을 저장하고 있음주소 (Address)메모리는 매우 많은 칸들로 구성되어 있고, 각 칸마다 고유의 변호가 있으며 이를 주소(addr..

image