[TIL] 2025-10-04 알고리즘 문제 풀이, C++과 C#의 차이점 학습
2025-10-04 TIL
알고리즘 문제 풀이
오늘도 2레벨 문제에서 정답률이 약간 더 낮은 문제를 풀었습니다.
이번 문제는 자료구조보다 알고리즘을 어떻게 구성할지에 대해 좀 더 고민하게된 문제였습니다.
특히, 배열을 어떻게 순회할지에 대한 부분과 각 요소에 대해 조건을 어떻게 만족할지에 대해 고민이 됐습니다.
배열의 요소는 무게를 의미하고, 원본 배열에서 요소의 위치가 중요하지 않기 때문에 조건 만족에 기준이 되는 무게를 기준으로 정렬해주어 배열을 어떻게 순회할지 결정해주었습니다.
다음으로 고민되는게 문제의 조건을 어떻게 만족할지인데, 보트라는 물체에 무게를 기준으로 특정 값 이하를 유지해 필요한 보트의 개수를 최소로 해야했기 때문에 테스트 케이스를 직접 만들어보고 다양한 방법들을 직접 적용해보는 식으로 문제를 접근해봤습니다.
결과적으로 생각보다 짧은 시간내에 문제를 해결하고 스스로 문제에 대해 분석하고 고민해 풀어냈기 때문에 이번 문제도 만족스럽습니다.
이번에 푼 문제들에 대해 별도 게시글로 정리해보았습니다.
C++과 C#의 차이점 학습
학습한 내용 정리
- C++과 C#의 차이점
- 개발 환경 및 용도
- 메모리 관리
- 포인터
- 객체지향
- 문법
학습한 내용은 별도 게시글로 정리했습니다.
[C#] C++과의 차이점
느낀점
기존에 C++과 C#의 차이점에 대한 내용은 간략한 설명을 듣거나 웹사이트를 살펴보아 대략적으로 알고있었습니다.
하지만 좀 더 능동적으로 해당 부분에 대해 살펴보지는 않았는데, 이번에 기존보다 정확하게 알아둘 수 있는 좋은 학습이었습니다.
특히, C++은 직접 메모리를 관리하고 하드웨어에 가까운 수준에서 제어하기 때문에 성능이 중요한 영역에서 사용한다는 점.
C#은 가비지 컬렉터로 메모리 관리에 대한 적은 부담과 코드 작성이 상대적으로 간편한 부분으로 인해 빠른 프로토타이핑과 반복 개발에서 사용한 다는 점으로 용도를 명확하게 하며 차이점을 이해할 수 있었습니다.
저에게는 메모리 관리에 대한 부분에 문제가 생기면 곤란한 경험이 있었기 때문에 이 부분에 내용이 가장 와닿습니다.
그래서 가비지 컬렉터에 대한 궁금증들이 생기기도 하는데 나중에 시간이 된다면 해당 부분에 대해 학습해보고 싶습니다.
이외에 언리얼은 C++을 사용하고, 유니티는 C#을 사용하기 때문에 해당 학습에 있어서 굉장히 동기부여가 됐습니다.
다음 학습 계획
- C# 문법
- C++과 차이점 심화
- 가비지 컬렉터
- 게임 수학
- 내적과 외적
- 삼각함수
- 사원수
- 알고리즘 문제 풀기
이번 학습에서 C#을 급하게 학습해두어야 할 일이 생겨 C#을 학습했는데, 게임 수학에 대한 학습을 좀 미뤄두어야 할 것 같습니다.
C#은 우선 차이점에 대해 좀 더 심화해서 학습해야할 것 같고 이외에는 실습을 해보거나 C#으로 간단한 프로젝트를 해보는 경험이 있으면 좋을 것 같다고 생각합니다.
알고리즘 문제는 현재 난이도 수준에서 자료구조와 알고리즘에 대해 학습이 되기 때문에 갑자기 급격한 난이도 상승은 문제를 풀어나가는 것에 어려움이 있을 것 같고, 현재 난이도를 유지하는 것이 좋을 것 같습니다.
댓글남기기