그런거 알 필요 없어라고 하는 사람은 그만큼 단순한 일을 하는거라는 말씀이 포인트 같네요ㅋㅋ
@Qwertyuuipasdf
Жыл бұрын
???: GPT야 트리좀 만들어줘~
@jmnu9041
Жыл бұрын
자료구조 책에 있는 스택 큐 덱 연결리스트 원형 이중 이진트리 이진탐색트리 그냥 처음엔 이해가 안돼서 코드그냥 전부 외우고(책 덮고 모든 코드 다 짤 수 있을 때까지) 다시보니까 이해가 잘가네요 ㅋㅋㅋ
@ibeuel
Жыл бұрын
자료구조 안하는..못하는 개발자가 만든 프로그램은 실제 서비스 시 문제 터짐
@user-tk9uj2sn7w
Жыл бұрын
모든 말씀에 동의합니다. 링크드리스트의 경우, 구현방법 자체가 트리 구현에 사용되므로 당연히 필수라고 생각합니다요. 뭐 요즘은 거의 언어 자체에서 제공하는 가변배열 등을 사용할테지만, 더 나은 성능최적화를 위해 구현이 필요한 경우가 많이 생길거라 생각합니다. 트리 분할정복의 개념이 아마도 현존하는 자료구조 중, 시간복잡도에서 가장 효율적인 순회 방법이기 때문에 필수로 구현까지는 해봐야 이게 왜 필요한지 체감할거라 생각하고요 그래프는 꼭 한번은 구현해봐야 한다는 말이 매우 중요한 듯 합니다. 이제는 쓰이는데가 너무 많아져버렸음요. 지도 어플 같은데선 도로 구현 등…
@멜론맛케익
Жыл бұрын
교수님이 옜날에 자료구조랑 알고리즘중 자료구조가 훨씬 중요하다고 그랬었는뎀...
@romulus4677
Жыл бұрын
둘다 아주 중요하죠
@jayminoh4195
Жыл бұрын
사실 자료구조에 대한 제대로 된 이해가 없다면 특히 트리, 그래프에 대한 이해가 없다면 알고리즘은 사실상 따라하기 밖에 안되기 때문인거 같아요.
@jsl5073
Жыл бұрын
@@rabbit2580 어디까지를 자료구조라 말해야 할 지는 모르겠지만, 적어도 컴공 전공을 기준으로 자료구조 시간에는 단순히 자료의 구조만을 논하지 않습니다. 이 자료구조가 어떻게 생겨났는지, 어떻게 개선하는 지, 이것의 효율성을 수학적으로 증명하고 또는 알고리즘 수업 수준까지는 아니여도 이를 활용한 간단한 알고리즘 등을 소개하죠. DFS, BFS같은 기초적인 알고리즘들, MST 등은 이것의 속성이 알고리즘이라 할 지라도 알고리즘 시간에 제대로 배우진 않습니다. 이는 기본적으로 위 알고리즘은 그래프, 스택, 큐 등의 기본 자료구조에 종속되어 있고 깊게 연관돼 있기 때문이죠. 알고리즘 시간에 트리, 그래프를 배우지 않습니다. 왜 트리를 더 발전시켜 AVL 트리나 R-B 트리가 나왔는지 배우지 않죠. 그런데 이런 걸 모르고서 과연 프로그래머라 할 수 있을까요? 그리고 더 중요한 건 이런 기본을 모르고서 과연 알고리즘을 제대로 배울 수 있을까요? 그냥 수박 겉핥기밖에 안 된다고 봅니다. 위에 사항은 너무 기본적이라 굳이 중요하지 않다고 반문하고, 차라리 그 시간에 알고리즘을 더 연마하는데 공을 쏟는게 더 낫다는 말에 완전히 반박은 못하겠습니다. 사람마다 다르고, 저도 자료구조와 알고리즘 모두 어려워하니깐요. 하지만 적어도 제가 말할 수 있는 것은, 제가 본 많은 알고리즘들은 그 기반을 모두 자료구조에 두고 있었습니다. 자료구조를 겉핡기로 배운다면 절대 이해하지 못하는 알고리즘들도 많았고, 반대로 말하면 자료구조만 제대로 이해해도 쉽게 이해되는 알고리즘들도 꽤 많았습니다. 단순히 자료구조가 자료의 형태와 구조 등을 논하는 것으로 한정짓기에는 배우는 게 상당히 많죠. 애초에 자료구조를 배운다는 건 이 자료구조를 활용해 어떤 것이 가능한지를 배우는 것까지가 자료구조를 배우는 것입니다. 그래서 자료구조와 알고리즘은 서로 독립되지 않은 연관된 분야고, 그중 사실 컴퓨터과학과 수학 분야는 모르겠으나 일반 프로그래머 입장에선 자료구조를 잘 닦아야 알고리즘을 이해할 수 있다고 봅니다. 저는 대학원 쪽은 잘 모르기 때문에 모든 것은 학부 기준입니다.
@jayminoh4195
Жыл бұрын
@@rabbit2580 이번 포프님 영상이 꼭 필요한 분인거 같네요.
@멜론맛케익
Жыл бұрын
@@jsl5073 제가들은 교수님의 말씀과 일치하십니다. 알고리즘은 자료구조에 종속되기 때문에 자료구조의 이해와 선택이 더 중요하다는 말씀이셨어요
@hana-new
Жыл бұрын
자료구조도 자료구조이지만 보안이 정말 중요한듯.. 롤 소스코드 다 털렸다는데 도대체 어떻게 ㅋㅋㅋ
@jmnu9041
9 ай бұрын
학교에 삼전 연구소에서 일하다오신 교수님이 있는데, 포프님하고 같은 말을 하셔서 또 다시 영상 시청하게되네요. 교수님 말씀이 삼전에서 신입사원들 왕초보테스트를 하는데 그 기준이 스택 큐 덱 연결리스트 더블 원형, 이진탐색트리 책 안보고 구글서치 안하고 그 자리에서 구현할 수 있는지 라고 하네요. 이정도는 해야 왕초보 타이틀을 얻게된다는... ㅋㅋㅋ
@jeongsupark1485
Жыл бұрын
트리 : 노드와 간선으로 이뤄진 집합인데 사이클이 없는 집합 그래프 : 노드와 간선으로 이뤄진 집합 예전에 학부다닐때 이렇게 배웠었는데ㅋ 맞나..?ㅋ
@deleted_user_7392
Жыл бұрын
트리는 사이클이 없고 한 컴포넌트로 이루어진 그래프입니다
@Asterisk162
Жыл бұрын
트리는 일반적으로는 ADG(Asyclic Directied Graph)의 한 종류로 사이클이 없는 방향 그래프로 봅니다. (물론 스레드 이진트리같은 경우 해당되지는 않지만..)일반적인 그래프에서 위상정렬을 실행해서 만들어지는 결과도 트리가 되고 MST는 이름부터 트리가 들어가는 알고리즘이죠
@rispyk3796
Жыл бұрын
좋은 기업 취업하려면 DFS,BFS는 필수더라고요.
@user-fq6bx4ec9p
Жыл бұрын
안 해도 괜찮다 -> 하면 당연히 좋다!
@Lee-kd7kh
8 ай бұрын
ㄹㅇ 자료구조는 책만 볼 게 아니라 손으로 직접 구현해보면 기억에 오래가더군요.
@aiuan7
Жыл бұрын
어떤 분야든 "안해도 된다. 몰라도 된다." 하는 사람 특) 해당 분야 잘아는 사람 아님.
제가 컴터그래픽스로 진로를 결정햇는데요 일단 요번학기에 컴퓨터그래픽스 수업이랑 수치해석이랑 휴먼&컴퓨터 인터렉션 이 세개 수업은 꼭 들을거고 나머지 한 수업으로 임베디드 앱,네트워크 소프트웨어,데이터베이스디자인, 랭귀지컴파일러디자인 이렇게 네 개중에 하나 고르려고 하는데요 이중에 어떤수업을 들으는게 그래픽스 프로그래밍에 되는데 도움이 될까요???
@포프티비
Жыл бұрын
다 크기 관련은 없는데 그나마 관련이 있는 게 임베디드 앱
@bictorlym5150
Жыл бұрын
그... 그치만 코테는 그래프까지 알아야하는걸요
@포프티비
Жыл бұрын
코테에서 그래프 묻는 회사가 많지는 않더라구요.
@ellerym149
Жыл бұрын
@@포프티비 그래프 탐색, 플러드필, 최단거리 문제 많이 냅니다. 그래프 문제 내기는 하는데 이 이상은 잘 안내는 것 같네요.
@bictorlym5150
Жыл бұрын
@@포프티비 포프님 비난하는 의미가 아니라 너무나 모르는게 많은 학생이라서 이렇게 무식한 댓글 답니다. 트리를 알아야 한다라고 이야기하시는 부분이 avl, 레드블랙트리 같은 이원 탐색트리와 b트리 같은 다원 탐색 트리를 포함해서 말씀하시는 건지 아니면 그냥 바이너리트리 히프 바이너리탐색트리 좀 더가서 유니온 파인드 같은 기본적인 트리를 이야기하시는 건지 궁금합니다. 제가 알기로는 코테기준으로 바이너리트리 힙 정도 나오고 mst 정도 나오는데에 비해 데이터베이스를 밑에서부터 이해하려면 위에서 말한 다원탐색트리까지 알아야 하는 것으로 알고 있습니다. 혹시 트리를 안다고 표현하신 부분이 정확하게 모든 트리(이원탐색트리 다원 탐색트리포함)를 이야기하시는건지 기본적인 트리를 이야기하시는건지 궁금합니다. 그래프는 잘안나온다라고 표현하신부분이 그래프에서 어디까지를 이야기하신지 궁금합니다 제가 알기로는 코테기준으로는 그래프에서 네트워크, A*까지 알 필요는 없고 bfs dfs 좀 더 가면 최단경로알고리즘(다잌스트라 벨만포드)이랑 mst(크루스칼) 정도로 알고 있습니다. 정확하게 그래프를 어디까지 이야기하시는건지 궁금합니다.
@euns8565
Жыл бұрын
@@bictorlym5150 포큐아카데미 comp3500찾아서 목차보세요
@bictorlym5150
Жыл бұрын
@@euns8565 오 그런방법이!
@우이천
Жыл бұрын
책장 -> 배열 책장기차 -> 배열리스트 기차 -> 리스트 뒷칸으로 가는 길이 2개 이상인 기차 -> 트리 뒷칸으로 갔는데 원상복귀 가능 -> 그래프
@deleted_user_7392
Жыл бұрын
기차 비유는 규모가 커지면 이상해지네요. 트리는 족보 그래프는 친구 관계도가 적당할 것 같습니다.
@deleted_user_7392
Жыл бұрын
비교적 최근까지 IOI라고 알고리즘 문제를 푸는 수학 올림피아드(IMO) 같은 대회를 1년 정도 준비하다가 제 근성과 흥미에 한계를 느껴 때려친 고딩입니다. 수상자들은 하루 10시간 이상씩 갈아넣는다는데 저는 딱 한 번 5시간 하는 것도 힘들어 죽을 뻔 하더라고요.. 지금 생각해 보면 알고리즘 문제 풀이의 최대 묘미인 혼자 생각하는 연습을 거의 안한 게 문제인데 이제 지난 일이죠ㅎㅎ 수상도 못하고 쓸모도 없는 알고리즘 공부를 잔뜩 했으니 시간을 생으로 갖다 버렸나 싶었는데, 사실 대회용 알고리즘 공부의 최대 장점은 수학적 사고력, 지적 유희, 수상 이력 획득 이런 것 보다도 실무에서의 알고리즘 스탯을 만땅으로 찍고 시작하며 알고리즘 문제 풀면서 코딩하는 것도 지독한 숏코딩 포프님이 말하시는 변수명 a, b, c, x, y z에 #define FOR(i) for(int i=0;i< 긴 글 읽으신 분들께 축하와 감사의 말씀 드리며 이 글이 재밌는 이야기 같은 글이었으면 좋겠습니다. 번외로, 영상에서 퀵소트 얘기가 나와서 말인데 실무에선 공간을 2배로 사용하지만 시간복잡도가 안정적인 merge sort를 사용한다고 들었는데, 맞나요? 포프님과 이곳의 대한민국 최고(?!) 개발자님들의 의견이 궁금하네요.
@deleted_user_7392
Жыл бұрын
@아저씨 님이 해주세요
@포프티비
Жыл бұрын
머지 소트 잘 사용안해요. 메모리 할당은 꽤 느린 연산이고 빅오로 표현할때 퀵과 머지가 동급이지 실제 CPU 클럭을 보면 대부분 퀵이 빠르니까요. 주로 킉소트 사용하되 어떤 경우에도 n^2만큼 느려지면 안되는 경우에만 머지 사용합니다.
@deleted_user_7392
Жыл бұрын
@@포프티비 오오 감사합니다(근데 킉소트 ㅋㅋㅋ)
@Asterisk162
Жыл бұрын
@@포프티비 자바같은 언어에서는 시스템 소팅으로 팀 정렬이 사용되던데 레거시 머지소트랑 선택정렬을 합쳐서 쓰더군요. 일반적으로 자바를 선택한 환경이라면 메모리에 제약이 없다는 가정이라 시스템 소팅으로 팀정렬을 고른걸까요?
@kimmin36944
9 ай бұрын
팀소트 사용하지않나여
@seirenkaren5411
Жыл бұрын
개인적으론 어느 언어든 하나라도 제대로 배운 뒤에 자료구조로 넘어가는 게 좋다고 생각합니다
@user-tk9uj2sn7w
Жыл бұрын
옛날 C언어 기본서에는 struct 배우면서 링크드리스트 구현하는게 기본으로 나와있죠.
@doltoBlorin
11 ай бұрын
왜인지 제 기억속의 트리는 힙 트리, 최소 연결 트리, 이진 트리 등등으로 기억되고 있어서 "정확하게 트리가 뭔데?" 하는 느낌이 없잖아 있었네요... 아무튼 "트리에 노드를 추가하면 그 트리가 자동으로 정렬된다... "정도로만 이해하고 있는 자료형이었는데 항상 "이럴꺼면 (시간복잡도가 nLogn 일거면) 그냥 해시맵 쓰는게 낫지 않아?" 라는 마인드라서 굳이 트리구조를 만들어서 써본 기억은 없네요 ㅎㅎ... (지금 생각해보면 정렬이 필요한 경우에는 써볼 수 있겠지만... 보통 sort가 표준 라이브러리에 있기 때문에 그 생각 자체를 안해봤었네요...) 어쩌면 재귀 함수를 만들면서 알게 모르게 그걸 썻을 수도 있지만, 의도적으로 "이런 케이스인 경우엔 트리구조가 적합할거같은데?" 같은 경우는 만나본적이 없습니다... 취업 준비해야하는데, 자료구조... 으아아😂
@user-lo3ti7re4i
Жыл бұрын
취준할때 열심히 외워가며 공부했는데 취업하고 안쓰다보니 다까먹게되네요... 코테도 전보다 못해지고
@youdied5306
Жыл бұрын
감사합니다
@jahyukshin4239
Жыл бұрын
b-tree에 대해선 어떻게 생각하시나요?
@user-tk9uj2sn7w
Жыл бұрын
당연히 트리 구현 과정에서 터득하고 구현하며 확장하는 과정에서 자연스레 함께 해야죠.
@deleted_user_7392
Жыл бұрын
레드블랙트리요?
@포프티비
Жыл бұрын
개념은 확실히 이해하되, 실제 구현 알고리듬은 감만 잡을 정도로 알고, 구현은 하지 못해도 된다 생각합니다.
@deanaquest934
Жыл бұрын
포프님은 어떤 분야의 앱을 주로 구현 하시나요? 저는 웹쪽을 하는데 리스트 외에는 사용할일이 앖었거든요.
@포프티비
Жыл бұрын
저도 요즘은 웹쪽이요. 최근에 사용한 자료구조를 보니 배열, 해시 테이블/맵, 스택, 큐, 트리 등이 있네요.
@user-jb5vr9xz2v
3 ай бұрын
자료구조관련 서적 추천해주실만한게 있을까요😭
@MrGijung
Жыл бұрын
실무에서 트리 두번 구현해봤어요
@jange8782
Жыл бұрын
뭔가 학과 알고리즘 수업이 생각나는 영상이군요
@gosu7412
Жыл бұрын
컴공/소프트웨어 학부 기준으로 NP-Complete 문제 까지를 기준으로 끝내지 않나요? 다른 대학은 안다녀봐서 모르겠네요. 알고리즘이 3학년 1학기 수업인가 2학년 2학기 수업이였던가로 기억하는데 자료구조는 당연하고 그래프로 부터 NP문제 까지 배우지요. 제 기억에는 그렇습니다. Linear algebra 부터 시작해서 NP문제까지는 쭉 훑어봤던걸로 기억하는데... 요즘 이런거 말하면 괴짜 취급 받습니다
@포프티비
Жыл бұрын
요즘 많은 대학들에서는 안 그런다고 하더라구요. 학생들이 힘들다고 항의해서 그런다고... (또르르)
Пікірлер: 71