jaehoo1   4년 전

안녕하세요 BOJ에서 문제푼지 1년이 조금 넘어가는 jaehoo1입니다.

저는 문제를 풀 때 그 문제의 정해에 해당하는 자료구조/알고리즘을 쓰다기 보다는,

거의 기본배열과 잔머리(?)로 해결하려는 편입니다.

자료구조를 잘 안쓰니, C++도 잘 사용 안합니다(주로 C 만 사용하네요)(C++문법도 잘 모르구요).

꼭 필요한 자료구조는 C로 직접 구현합니다.

예를 들어서, 1158-조세퍼스 문제 문제의 경우

LinkedList를 구현하지 않고 그냥 배열로 풉니다.

또, 2526-싸이클 문제도

Graph를 구현하지 않고 그냥 배열로 풉니다.

10828-스택, 9012-괄호 문제는

Stack 말고 딱히 푸는 방법이 생각이 안나므로,

제가 직접 구현한 스택을 사용합니다.

BFS/DFS 문제는 2차원 배열에 넣고

다 단순재귀 돌립니다(메모리/시간 폭파).

제가 이렇게 푸는 이유는 자료구조에 많이 약해서인데

(아직 개념에 대한 정확한 이해가 부족합니다)

이렇게 배열로라도 문제를 푸는게 좋은지,

아니면 정확히 자료구조를 구현하여 정해대로 푸는게 좋을지

말씀을 여쭙고 싶습니다.

자료구조 공부를 하고, 개념을 완벽히 이해하면,

그 자료구조를 구현하려고 하는데

이미 배열로 문제를 푼 시점에서 늦은건 아닌지...

감사합니다.

+++ 무엇을 우선순위로 공부하는게 좋을까요?

(1) 자료구조

(2) 알고리즘

(3) 그대로 PS

(4) C++등 다른 언어

(5) 그 외 좋은 의견

chogahui05   4년 전

(1) C++의 STL이나 Java의 Collection 등 구현되어 있는 자료구조들을 편하게 쓸 수 있는 방법들.

(2) stack이나 queue 같이 간단한 자료구조는 직접 구현할 수 있는 능력.

(3) DFS는 모르겠는데 BFS는 단순 재귀로 해결이 되나요? :Thinking:

일단 저 같으면 자료구조나 알고리즘 중에서 기초적인 부분 조금 더 보강할 듯 싶습니다만..

문제는 많이 푸신 듯 싶으니 그 부분은 잘 하실거라고 생각합니다.

jaehoo1   4년 전

의견 감사합니다.

결국 C++ STL을 공부해야겠군요

BFS는 제한이 적은 문제를 주로 풀어서 풀렸습니다

댓글을 작성하려면 로그인해야 합니다.