Hash Table은 프로그래머의 기본기

Поділитися
Вставка
  • Опубліковано 21 лип 2018
  • 제가 면접 때 해쉬 테이블 구현하라는 질문을 종종 묻는 이유
    #프로그래머 #기본기

КОМЕНТАРІ • 107

  • @jonghopark8185
    @jonghopark8185 5 років тому +1

    기본기 복습을 다짐하게 되네요. 좋은 영상 감사합니다.

  • @ahndream
    @ahndream 6 років тому +3

    감사합니다. Hashtable, HashMap 공부하고 있었는데 많은 도움이 되었습니다.

  • @cloelee206
    @cloelee206 5 років тому +18

    한국 대학 교육과정은 어떻게 가르치는지는 잘모르겠지만 설명하신개념이 딱 제가 미국 대학에서 배웠던 방식이랑 일치해서 reminding 되서 너무 좋았어요!

  • @user-kx9kv5rm7s
    @user-kx9kv5rm7s 6 років тому +4

    뒷부분 말은 잘 모르는것도있지만 기본에 충실해야하고 모르는걸 줄여나가야 한다는 두가지를 다시 생각해 보는것만으로도 도움이 많이됩니다ㅎㅎ

  • @user-be3nh3st5q
    @user-be3nh3st5q 5 років тому +1

    감사합니다 많이 배워갑니다👍

  • @jws1837
    @jws1837 2 роки тому +8

    전에 들었을떄는 어렴풋하게 이해했는데, 이제 어느정도 경험이 쌓이고 공부하니 확이해가 되네요. 감사합니다.

  • @ParkSeoJoon1004
    @ParkSeoJoon1004 5 років тому

    일에 지치고 힘들때 포프님 강의 듣고 힘냅니다!

  • @zzzzzzi67
    @zzzzzzi67 4 роки тому

    포프쌤 c 언매니지드 프로그래밍 강의 듣다가 해시 테이블부분 듣고
    잠깐 딴짓하면서 이 영상 보는데 넘나 뜨끔하네요 ㅋㅋㅋ 복습하러 가겠습니다....

  • @user-jq5cj2bt7k
    @user-jq5cj2bt7k 2 роки тому

    너무 좋은 강의 감사합니다 ㅠ.ㅠ..

  • @Coco-yk4cr
    @Coco-yk4cr 5 років тому +2

    1년 전까지는 프로그래밍 이야기 하시면 못알아들어서 대충 듣고 흘렸는데 요즘은 반절이상은 알아듣고있습니다 ㅎㅎ 프로그래밍 관련 이야기 많이 해주셨으면 좋겠습니다.

  • @dannytwlc3666
    @dannytwlc3666 6 років тому

    와, DS 와 Algo,를 배우기만했는데, 정말 이해 잘하고 갑니다. 감사합니다.

  • @hm-xh1ju
    @hm-xh1ju 2 роки тому

    안녕하세요. 좋은 말씀 정말 감사합니다. 강의 진행하시는 거 꼭 들어보고 싶네요.

    • @포프티비
      @포프티비  2 роки тому +1

      어서 와서 들으세요 pocu.academy 입니다

  • @user-ez4km2eb3j
    @user-ez4km2eb3j 6 років тому +11

    포프 큐션의 위치와 포프님의 헤어스타일 의상을 비교해보면 언제 어떤영상과 같이 찍은 영상인지를 추측해 볼수 있지요~ 후훗
    이글을 보고 뭐뭐가 같이 찍은 영상인지 찾아보시는 분들덕에 다른 영상 조회수가 올라가겠지?ㅋㅋ

  • @gilly8061
    @gilly8061 6 років тому

    pocu... 넘 기대됩니닷ㅎㅎ

  • @dayoungkim1484
    @dayoungkim1484 4 роки тому +2

    학원에서 해쉬테이블 해쉬맵 이런거 알려주지 않고 바로 해쉬코드 메서드를 가르쳐주시길래 도무지 이해가 안되서 여기까지 왔네요ㅠㅠ 이제 대충 어떤건지는 알겠습니다. 더 공부해야겠지만요. 설명 감사해요!!

  • @seanpark3539
    @seanpark3539 Рік тому +2

    몇년 간 올리셨던 영상 내용에서 comp 과목들의 정수(精髓)가 느껴집니다ㅎㅎ

    • @포프티비
      @포프티비  Рік тому +1

      흔들리지 않는 원칙이 중요하죠

  • @namseoppark8483
    @namseoppark8483 4 роки тому +5

    영상 잘 봤습니다. ^^ 좋은 강좌 감사합니다. 아쉬운건 Object 와 Class 를 구분하여 표현하지 않아 헷갈려요 ... 예를 들면 getHash() 는 Class에서 작성하는게 맞는 표현 인거죠?

  • @user-rm1uo5wk2w
    @user-rm1uo5wk2w 6 років тому +2

    과거에 비전공자로 자료구조 수업을 들었었는데, 그 수업 대부분 이해를 못 했던걸로 기억해요. 그냥 빠르구나 정도로 기억들 하더라고요.

  • @wonkyeomkim1416
    @wonkyeomkim1416 3 роки тому

    와 진짜 설명 명료하네요. 소름돋습니다. 바코드예 잘쓸께요. 곧 면접이라서 ㅎㅎ

  • @videos-gamer9
    @videos-gamer9 6 років тому +20

    영상 정말로 잘봤습니다. 수다보다 저는 프로그래밍적인게 좋네요 ㅎ

  • @user-nk1sm9dz5w
    @user-nk1sm9dz5w Рік тому

    감사합니다.

  • @MarkForTheWorld
    @MarkForTheWorld 4 місяці тому

    테이블이랑 해시테이블 구현도 직접 해봐야겠어요..

  • @user-ut9tq7ce7h
    @user-ut9tq7ce7h 5 років тому +2

    마침 C로 Hash 배우는 중이에요, 지금보니 파이썬에서 비슷한 함수가 있었던거 같아요

  • @user-vh6xd1sc3d
    @user-vh6xd1sc3d 5 років тому +10

    학교교육이 기본기를 책으로만 가르치고 실제로 다져주지 않는다는거에 완전 공감이요. ㅠ.ㅠ

    • @max_7344
      @max_7344 Рік тому +1

      네. 결국 혼자서 해야해요.

  • @user-gf6kf5ui6l
    @user-gf6kf5ui6l 6 років тому +71

    고수의 생각을 들을수있다는거 자체가 감사하다

    • @user-cj5sd1oo7q
      @user-cj5sd1oo7q 3 роки тому +6

      오바좀 ㄷ;

    • @TannyTales
      @TannyTales 3 роки тому +2

      2년전 댓글이지만 게임 프로그래머가 아니다보니까 해시 테이블 자체 구현하는데 키 데이터에 해싱을 직접 구현해서 하는걸 물은건줄 알고 깝놀 했네요. 중복 키 회피 기법이랑 이런 것들이 들어가서 논리로직도가 아주 복잡하지요. 빠른 엑세스를 위한 기본 로직도 들어가야 하는거고요.

    • @janeatgc9475
      @janeatgc9475 3 роки тому +1

      ㄹㅇ... 유투브의 순기능
      (수학 문제 중 잘 틀리는 유형 모음집같은)

  • @user-it2po7by5v
    @user-it2po7by5v 4 роки тому

    해시는 잘써야하죠
    해시에 해시를 담는 부분은 정말 조심해야된다고 생각합니다.

  • @user-fq8rg2wr4n
    @user-fq8rg2wr4n 6 років тому +7

    여러 언어들이 점점 전문 프로그래머 뿐만 아니라 코딩경험이 없는 사람들을 타겟으로 하다보니 어려운부분을 최대한 숨기게되고, 대학교에선 잘하던 못하던 학생들 취업이나 시켜보자 해서 해당 언어를 쓰면 굳이 알필요 없는 부분은 가르치지 않는느낌이에요

  • @user-bp5fk9ln2h
    @user-bp5fk9ln2h 5 років тому

    최근 자바 스프링 개발에서 다시 C# 스크립트 코딩으로 바꿨는데 부족한게 많네요...

  • @CHOHANGSU
    @CHOHANGSU 2 роки тому +2

    hash function collision 처리 하는것만으로도. 기본기 파악 가능하죠. 그런데 시니어일수록 모릅니다. ㅠ

    • @포프티비
      @포프티비  2 роки тому

      건 시니어가 아니라 그냥 경력이 긴 사람이라 생각합니다... (저랑 일하는 시니어는 그거 다 할 줄 앎...)

  • @davidsangmokoh7209
    @davidsangmokoh7209 5 років тому +24

    프로그래머가 목표인 코더입니다. '이럴 땐 이걸 써야한다'라는 식의 취업용 교육을 받고 취업 후 결론부터 '왜?'라는 식의 역으로 공부 중인데요.
    손 안 닿는 등짝 한가운데를 시원하게 긁어준 느낌이네요. 뭘 검색해야할지 도움 받았습니다. 감사드립니다.

    • @max_7344
      @max_7344 Рік тому +3

      님이 이 댓글 남길 즈음 저는 컴공 막 입학할 시기였는데 어느덧 졸업이 한학기 남은 코앞이네요. 여러 언어를 다뤘고 포트폴리오를 준비중입니다. 님은 어떻게 지내시는지 이 댓글보고 안부 남깁니다

  • @NO_REPLY_ALARM_TOWARD_ME
    @NO_REPLY_ALARM_TOWARD_ME 3 роки тому +1

    질문이 있습니다..!!!! 가상 메모리에서 페이지 번호와 변위값 이 두가지를 통해 물리적 주소를 알아내는 방식과 동일하다고 봐도 무방한가요?

    • @NO_REPLY_ALARM_TOWARD_ME
      @NO_REPLY_ALARM_TOWARD_ME 3 роки тому

      페이지 번호를 모듈러 연산을 통해 나온 나머지에 매핑시킨다면..... 배열의 이름은 배열의 시작점과 같으니까 그로부터 얼마가 떨어져 있는지를 변위값으로만 찾아주면 그것이 value가 되는 것이니까 유사하다고 생각을 했습니다.
      그냥 보따리 배열 하나에 그냥 몰아넣는 것 = 램 용량이 엄청나게 크게 만들어지는 것 이게 비효율적이니까 이 같은 불편함을 해소하기 위해 나온개념이 아닌가 생각이 듭니다.

    • @포프티비
      @포프티비  2 роки тому

      건 운영체제에 따라 다르겠죠....(저도 깊게 안봐서 잘 모름)

  • @Hincom
    @Hincom 6 років тому

    0:16 전 진담을 좋아한다고요!!

  • @muna7153
    @muna7153 5 років тому

    예전 생각나네요. 확실히 해본 친구와 다르져

  • @hyeonsseungsseungi
    @hyeonsseungsseungi 5 років тому

    Hash table 어릴때는 곧잘 만들었는데... 지금 하라면 못하겠군요...

  • @donghwip
    @donghwip 5 років тому +6

    일본 아이티 회사 코딩시험에 해쉬테이블 만드는 문제가 나왔네요. 얼마나 중요한 부분인지 포프님 동영상 보면서 다시 한번 느낍니다.

  • @sapiensteam5352
    @sapiensteam5352 5 років тому +1

    빙의라고 하시는 줄 ㅠㅠ 무식해서 죄송합니다.
    공부 좀 더 하고 오겠습니다.

  • @user-jb5vr9xz2v
    @user-jb5vr9xz2v 2 роки тому +2

    선생님의 가르침 응애가 쫓아올라갑니다🥺❤️

  • @focusjung2397
    @focusjung2397 6 років тому +4

    어지간한 프로그래밍책 하나 읽는거보다 스스로 생각하게하는 비디오내요.

  • @vv720
    @vv720 Рік тому +1

    ㅋㅋㅋㅋㅋㅋㅋ 돌고 돕니다 진짜

  • @user-km8qc2zr1m
    @user-km8qc2zr1m 5 років тому +6

    4k 라니... 아저씨...

  • @user-ly4hh8zh1k
    @user-ly4hh8zh1k 6 років тому +3

    POCU가 필요한 이유

  • @kyeungjinnam4151
    @kyeungjinnam4151 6 років тому

    모닝 퐆!

  • @jss5553
    @jss5553 6 років тому +4

    이런 기본기 질문이 인터뷰에서 까다로운게 너무 당연해서 오히려 그 당연한 답이 잘 안나오더라구요. 물론 이것도 준비부족, 변명거리는 못되지만요. 마치 숨 어떻게 쉬어요? 같은 느낌....어? 어디서부터 답해야되지. 허파부터 만들어야되나;

    • @berryniceberry727
      @berryniceberry727 5 років тому +2

      송종성 앜ㅋㅋㅋㅋㅋㅋ 매우 공감.. 흙이란 뭐죠? 불의 원리는 무엇인가요? 안그래도 떨리는 면접때 이런 기본적인 질문 들으면 더 당황하게 되는거같아요.. 코딩할때는 다 하는 것들인데

  • @user-rc6fj1dc1k
    @user-rc6fj1dc1k 4 роки тому +3

    PS를 좋아하는 개발자로서 코드포스 컨테스트에서 해싱 했다가 핵 당한 적 있어서 찜찜한 방법 중 하나 ㅋㅋ

  • @johnapple9576
    @johnapple9576 5 років тому +4

    재미 있네요. C 프로그래머 다워요. 성능 향상을 목적으로 하지는 안지만 비슷한 개념으로 업무 프로그램 개발은 코드 규칙을 만들고 테이블에 저장 하죠. 제가 초급때 포프님 비슷한 말 했다가 욕먹었죠. 성능이요? 램 더 사서 다는게 더 편하다네요 ㅋㅋㅋ

  • @data_dreamer
    @data_dreamer Місяць тому

    06:04 눈물 한방울 흘립니다 ㅠ

  • @Ilotish
    @Ilotish 3 роки тому

    그저 빛.... ㅍㅍ

  • @user-sn5cw3yl6k
    @user-sn5cw3yl6k 6 років тому +22

    포프님이 프로그래밍 관련 얘기할때마다 뷰수가 떨어지는 이유는 아마도 프로그래밍 얘기는 프로그래밍을 어느정도 배운사람만 알아들을수 있기에 그런 지식을 아는 한정된 사람들만 봐서 그런 것 같습니다. 포프님의 시청자는 프로그래밍 관련된 사람만으로 이루어진게 아니니까요

  • @rirakumang
    @rirakumang 6 років тому +5

    POCU에서는 이런 내용들을 제대로 배울수 있는건가요?
    뭔가 대부분의 사람들이 말하는 "기초" 라는걸 좀 배워보고 싶어서 여기저기 물어보면 다들 그냥 '문제푸는능력' 정도로 추상적으로 답변을 해서 어떻게 공부해야 하는지 궁금하네요.

  • @hyunduk9400
    @hyunduk9400 6 років тому

    안녕하세요. 좋은 아침입니다.
    테크,프로그래밍 비디오보다 다른 쪽 조회수가 높네요. ㅎㅎ

  • @jibsun-i
    @jibsun-i 4 роки тому +2

    정말 요새 학교는 이런거 안알려줘요.. 그래서 무엇을 공부해야하는지 알 수 없게 됩니다.

  • @user-mh4qc4mo5o
    @user-mh4qc4mo5o 6 років тому +5

    헛소리할때 매력 터짐

  • @worldhello7068
    @worldhello7068 6 років тому +2

    성능을 올리려면 캐시 해시~

  • @user-nv2xf8yl7l
    @user-nv2xf8yl7l 6 років тому +1

    아...너무 어렵다^^ 1년 반차가 알기엔 너무 힘든가요?

    • @M4D4F4K4.
      @M4D4F4K4. Рік тому

      그냥재능차이에요 ^^ 머리가 되면 이해하고 우메하면 몇년을 해도 이해를 못하는게 현실입니다.

  • @romanticbee
    @romanticbee 4 роки тому +6

    배움의 깊이가 없어지는거 같은 느낌은 아마 프로그래밍 언어가 점점 편하고 쉬워져서 그런 거 같습니다. 해쉬테이블 직접 구현 안해도, 내부를 몰라도 뭔가 만들어서 동작시킬 수 있으니까요.
    옛날 386, 486 시절엔 도스화면에 글씨만 가득해도 그거 재미있어서 코딩했고 ,
    스택 큐 다 구현해가면서 어떻게 조금이라도 빠르게 할까 고민하고 어떻게든 메모리 아껴보려고 엄청 애를 썼는데 ... 요즘은 다양한 자료형 다 제공하고 메모리관리도 알아서 다 해주고.. 완전 편해진거 같어요.

    • @user-nw8pu5fw5w
      @user-nw8pu5fw5w 10 місяців тому +1

      편한 시대에 코딩공부를 시작한 새내기입니다... 말씀해주신 부분이 십분 공감되기에 지금의 편해진 시스템에 안도감을 느끼는 반면, 컴퓨터에 대한 원초적인 이해가 없어도 될까...하는 불안감도 있는 것이 사실입니다. 요즘같이 코딩이 편해진 시대에 시간을 투자해서 컴퓨터의 원론적인 부분을 공부한다는 것이 머리로는 그 중요성을 느끼지만, 취업 등의 현실적인 압박 앞에서는 "편한게 편한거지"라는 식으로 미루게되는 것이 현실입니다... 부디 조언좀 부탁드립니다ㅠㅠ

  • @Snowflake_tv
    @Snowflake_tv Рік тому +1

    binning을 하고싶다.

  • @jlim3913
    @jlim3913 Рік тому +1

    6:30설명

  • @user-fk5lw2cc3x
    @user-fk5lw2cc3x 4 роки тому

    첨으로 댓글 달아봅니다 ( 뱃지 자랑 )

  • @MoneyStudyLeeJongSung
    @MoneyStudyLeeJongSung 6 років тому

    해쉬 테이블 구현 문제가 나왔으면 저는 합격 했을텐데 아쉽네요, 좋은 회사들은 저한테 면접 기회 조차 주지 않으니 ㅎㅎ 혼자 먹고 살 준비 중입니다.

  • @ko-developer
    @ko-developer 6 років тому

    헛소리가 조아요! 데헷☆

  • @user-de3jx2zt5n
    @user-de3jx2zt5n 3 місяці тому

    형님 5년전부터 같은 헤어스타일이셨군여

    • @포프티비
      @포프티비  3 місяці тому

      가... 가발?

    • @user-de3jx2zt5n
      @user-de3jx2zt5n 3 місяці тому

      @@포프티비 ㅋㅋㅋ 가발이면 어떻습니까! 항상 재밌는 컨텐츠 기대하겠습니다 ㅎㅎ

  • @chancethe9374
    @chancethe9374 2 роки тому +1

    대학 2학년때 배우는 내용인데요...자료구조 기초인데... 음 .. 그리고 이 내용은 말로 이야기 하는거보다 코드몇줄로 보여주는게 열매는 전달이 잘될거같네요..

    • @포프티비
      @포프티비  2 роки тому +1

      안배우는 대학도 있긴 합니다..... ㅡ.ㅡ

  • @skeksk91
    @skeksk91 6 років тому +3

    음성 싱크가 안맞는듯 합니다~!

    • @포프티비
      @포프티비  6 років тому +2

      다음편부턴 고치려고 하고 있습니다. :)

  • @rispyk3796
    @rispyk3796 2 місяці тому

    포큐를 만든 이유.

  • @junkman9010
    @junkman9010 6 років тому +7

    이걸 보니, 클래스는 C에서 만들 수 있느냐 없느냐를 가지고 싸우던 글이 생각나게 되네요.
    클래스는 결국엔 데이터를 한 곳에 모으는 것이고.
    함수도 결국엔 '주소'라는 숫자에 이동해서 구조체에 함수 포인터를 이용해서 구현하면 메소드인걸.
    C언어는 OOP의 언어가 아니다. 라면서 싸우는걸 보고 답답했던 기억이 있습니다.
    실제로 학교 선후배와 유사한 대화를 한 적이 있고.
    '컴퓨터는 숫자로 이뤄져있다.' 라는걸 무슨 뜻인지 생각 안하는 사람도 있는 것 같습니다.
    이건 학교 문제이기도 한 것 같지만, 배우는 사람도 깨달아야될 부분을 이루지 못하는 분들이 있는 것 같습니다.

    • @sneung
      @sneung 6 років тому

      ?

    • @espins6411
      @espins6411 6 років тому +5

      리눅스 커널에서 드라이버 어떻게 짜는지 보면 알수있죠 c언어로 OOP를 어떻게 흉내내는지 ㅎㅎ. 진짜 OOP보단 불편하고 제약도 있지만 C개발자들은 아주 오래전부터 흔히 써왔던 패턴입니다.

    • @blindim1880
      @blindim1880 6 років тому +6

      c든 c++든 컴퓨터의 프로세스는 같은데 , c 에서 oop를 구현해서 사용하는사람이 상대적으로 적고
      차라리 발달된 객체지향언어를 쓰는 사람이 많아 c에서 보기 힘든것뿐인데
      컴퓨터의 프로세스를 모르는 사람이 구현하는 생각을 못하고 다른소리를 하니 답답해하셧다는거죠?

    • @jameslee7962
      @jameslee7962 6 років тому +13

      JunkMan 객체지향을 흉내내는 것과 객체”지향”은 차이가 있다고 생각합니다.
      OOP의 orient가지고 쓸데없는 트집잡는 것 같아서 죄송하지만,
      (말씀하신 대부분의 말씀에 깊이 동의합니다.)
      예를 들어 자바7 이전을 두고 두고 절차지향이나 함수형이라고 하지 않듯이,
      언어가 어찌어찌 구현하는 것과 언어가 가진 철학과는 분명한 차이가 있다고 생각합니다,

  • @euns8565
    @euns8565 Рік тому +2

    면접문제로 물어보네요..

  • @jaejunglee4351
    @jaejunglee4351 6 років тому +2

    lookup table == hash table 비슷한 용어가 많아서 헷갈리네요. 왠지 해쉬라는 용어가 나오니까 어려워 보이는게 아닐까요..

    • @jaejunglee4351
      @jaejunglee4351 6 років тому +1

      memoization은 위키를 보고 쓴거죠?
      처음 들어본 용어군요.. 이렇게 이야기를 진행하면 끝이 없어요. 말할 때마다 새로운 용어가 나오니까요.
      영상에서 나온 최적화의 방법으로 lookup table로도 가능하다. 라는게 제 생각이구요.
      modulo 연산이 들어가면 무조건 hash table 이다. index 가 들어가는 것도 hash function으로 구현할 수 있으니까
      hash table이다 라고 한다면 할 말 없어요. 어차피 lookup table이든 hash table이든 최적화를 위해 고민을
      해보았느냐가 핵심이니까요. 상수 속도를 위한 처리 방법을 고민해보았냐가 핵심입니다.

    • @gunmong83
      @gunmong83 5 років тому +2

      hash table은 lookup table의 lookup 부분을 hash funtion으로 구현한거라고 넓은 의미로 볼수 있겠네요. memoization은 최적화 알고리즘에서 귀납적 연산의 반복성을 기록으로 줄이는 방법이에요. 다이나믹 프로그래밍에서 많이 쑤이는 방법이죠

    • @_________________________....
      @_________________________.... Рік тому

      😀

  • @ikickss
    @ikickss 5 років тому

    설마 hash table,hash function도 모르는 사람한테 컴공졸업장주는 학교는 없겠죠....

    • @포프티비
      @포프티비  5 років тому

      있다는게 문제.. ㅜ.ㅡ

    • @user-bp5fk9ln2h
      @user-bp5fk9ln2h 5 років тому

      알려준다 한들 구현 로직이나 하다못해 작동 원리마저 안 알려줘서 문제죠.
      그냥 키로 벨류 검색할때 쓰는거다 라고만 알려주니...
      반성하겠습니당...

    • @M4D4F4K4.
      @M4D4F4K4. Рік тому

      와 받을라다가 안되서 포기함 ㅋㅋㅋㅋㅋㅋ ㅆㅂ거

  • @user-bh8eu2qi8o
    @user-bh8eu2qi8o 4 місяці тому

    어처피 모든게 수라면 왜 형태마다 연산속도가 다르죠

    • @포프티비
      @포프티비  4 місяці тому

      비정형데이터에서 정형데이터(=수)를 만드는데 걸리는 시간이 달라서겠죠. (해시충돌이 많아도 느려지나 그런일은 그리 많지 않아서....)

    • @user-bh8eu2qi8o
      @user-bh8eu2qi8o 4 місяці тому

      @@포프티비 답변 감사합니다!

  • @zbflzlxl
    @zbflzlxl 3 роки тому +2

    ㅎㅎㅎㅎ 내가 올린 조회수 도로 가져가고 싶다.

    • @포프티비
      @포프티비  2 роки тому

      이렇게 댓글을 달면 힌번더 조회하시고...

  • @iankang1246
    @iankang1246 Рік тому

    1회청 이해 전혀 안됨 ! 공부하고 다시 들어보겠습니다!