본문 바로가기
728x90
반응형

프로그래밍14

[알고리즘] 시뮬레이션 문제는 왜 어려울까? (feat. 설계의 중요성) 💡 시뮬레이션 문제란?시뮬레이션 문제는 주어진 상황을 컴퓨터로 그대로 구현하는 문제 유형입니다.즉, 문제에서 요구하는 조건에 따라 알고리즘을 설계하고, 하나씩 순차적으로 실행해 결과를 도출해야 합니다.예시: 거북이 문제 (https://www.acmicpc.net/problem/8911)거북이가 명령어에 따라 이동하며, 최종적으로 이동한 영역의 넓이를 계산하는 문제는 전형적인 시뮬레이션 문제입니다.이처럼 주어진 조건에 따라 상태를 변경하거나 결과를 누적하는 과정을 반복적으로 수행합니다.🔥 시뮬레이션 문제를 어려워하는 이유1️⃣ 구현 난이도시뮬레이션 문제는 단순히 알고리즘을 설계하는 것뿐만 아니라, 모든 조건을 정확히 구현해야 합니다.조건이 많고 복잡할수록 코드가 길어지고, 디버깅이 어려워집니다.문제 .. 2025. 1. 9.
C - [백준 1987] 알파벳 (feat. 백트래킹, DFS & 최장거리 탐색) 참고 포스트 2024.12.25 - [Computer Science/알고리즘 문제] - C - [백준 2178] 미로탐색 (feat. BFS & 최단거리 탐색) C - [백준 2178] 미로탐색 (feat. BFS & 최단거리 탐색)참고 포스트https://rnasterofmysea.tistory.com/47 C - [Backjoon 1260] DFS와 BFS[참고 포스트]https://rnasterofmysea.tistory.com/45 [자료구조 & 알고리즘] 그래프 + DFS그래프에 대해 기초부터 차근차근 학습해보겠습니rnasterofmysea.tistory.com2024.12.30 - [Computer Science/자료구조 & 알고리즘] - [자료구조 & 알고리즘] 백트래킹 (feat. DFS,.. 2025. 1. 5.
[C언어 21] C언어로 객체지향 프로그래밍 흉내내기 C언어로 객체지향 프로그래밍 흉내내기C 언어는 객체지향 언어(OOP)를 지원하지 않는 절차적 언어입니다. 그러나 구조체와 함수 포인터를 조합하거나 특정 설계 패턴을 사용하여 객체지향의 핵심 개념을 구현할 수 있습니다. 이번 글에서는 C 언어로 클래스, 상속, 다형성과 같은 객체지향 특징을 흉내 내는 방법을 설명합니다. 1. C에서 클래스 흉내내기: 구조체와 함수의 조합클래스의 중요한 특징은 **데이터(멤버 변수)**와 **행동(멤버 함수)**를 묶어서 하나의 단위로 관리하는 것입니다. C에서는 다음과 같은 방식으로 이를 흉내낼 수 있습니다.1.1. 구조체를 사용하여 데이터 관리구조체는 클래스의 멤버 변수와 유사한 데이터 구조를 정의합니다.예제:#include // 구조체 정의typedef struct {.. 2024. 12. 29.
C - [백준 4179] 불! (feat. 이중 BFS) 참고 포스트2024.12.25 - [Computer Science/자료구조 & 알고리즘] - C - [Backjoon 2178] 미로탐색 (feat. BFS & 최단거리 탐색) C - [Backjoon 2178] 미로탐색 (feat. BFS & 최단거리 탐색)참고 포스트https://rnasterofmysea.tistory.com/47 C - [Backjoon 1260] DFS와 BFS[참고 포스트]https://rnasterofmysea.tistory.com/45 [자료구조 & 알고리즘] 그래프 + DFS그래프에 대해 기초부터 차근차근 학습해보겠습니rnasterofmysea.tistory.com  https://www.acmicpc.net/problem/4179 아래는 [BOJ 4179] 불! 문제의 .. 2024. 12. 29.
[C언어 20] Declarations 선언문 Declarations  선언문C 언어의 선언문은 변수, 함수, 포인터, 배열 등의 사용을 정의하는 중요한 요소입니다. 올바른 선언문 작성은 프로그램의 가독성과 안정성을 높입니다. 이 챕터에서는 선언문의 구조와 다양한 유형의 선언을 심도 있게 다룹니다. 기존에 자주 사용하던 선언 형식부터 다소 생소한(?) 선언문까지 짚고 가볼까합니다. 다음 포스트에는 C언어로 객체지향을 흉내내는 방법에 대해 게시하겠습니다.1. Basics of Declarations / 선언문의 기본구조: 선언문은 데이터 타입과 변수 이름으로 구성됩니다.형식: 예: int number;예제: 기본 변수 선언#include int main() { int number = 10; // 정수형 변수 선언 float pi = 3.1.. 2024. 12. 28.
[알고리즘] 단순 반복을 넘어서: 절차적 사고에 재귀를 더하다 도입부 (Introduction) : 재귀적 사고의 필요성 여태까지 컴퓨터정보공학을 전공하면서 알고리즘에 대한 공부가 취약했기 때문에 튼튼한 기초를 잡고자 알고리즘의 기초부터 공부하기 시작했습니다. 도중, 재귀 카테고리를 접하면서 프로그래밍을 대하는 사고방식 전환의 필요성을 느꼈습니다. 평소에 재귀의 개념을 완전 모르지 않고 간단한 팩토리얼 구현 등등 혹은 필요에 의해서 사용하는 수준에서 재귀의 대표격인 하노이의 탑 문제를 접했을 때 어디서 부터 설계를 해야할지 감이 안왔습니다. 이후 작동 원리를 이해한뒤에 코드를 보면 몇 줄이면 해결이 되는 모습을 보고, 코딩을 대하는 사고방식에 공백이 있다는 것을 인지하게 되었습니다. 소프트웨어 프로젝트를 다룰때나 평상시에 발생하는 문제에 대해 해결하는 방식이 절차적.. 2024. 12. 27.
728x90
반응형