혼자 공부하는 파이썬 개정판 68강 - 5-02절 확인문제: 기본 형태

Поделиться
HTML-код
  • Опубликовано: 9 янв 2025

Комментарии • 41

  • @레쓰고디디씨
    @레쓰고디디씨 2 месяца назад

    어렵지만 90프로 정도 이해했습니다...

  • @먹는샘물-i2w
    @먹는샘물-i2w 2 года назад +10

    한숨과 병신같은 이야기에서 백번 공감하고 갑니다.

  • @JeongWooPark-iz3pb
    @JeongWooPark-iz3pb 4 месяца назад

    어렵네요 ㅜ 천천히 이해 해볼게요 ㅇㅅㅇ
    2024.09.06

  • @user-sc9rw3ks2g
    @user-sc9rw3ks2g Год назад

    나름 좋은 경험이었습니다. 앞전 재귀함수 강의에서는 패토리얼 리턴 값들이 스택위로 가면서 할당되는 모습이었는데.
    이번 문제에서는 그런 모습이 보이지 않아 좀 헷갈리기도 했는데. 컴퓨터 매모리구조가 어떻게 돌아가는지를 좀. 맛볼 수 있는 기회였네요. 3일 정도 고민하고 파이썬 튜터 보면서 따라가다 놓치기도 하고. 하면서 겨우 따라 갔네요. 좋은 강의 감사합니다.

  • @Ivan-k5o1y
    @Ivan-k5o1y 5 месяцев назад

    질문있습니다. 테이블나누기 문제 책에 제시한 답안 부분에 변수로 '안힐수있는최대사람수' 를 선언하고 함수안에서 for i in range(앉힌사람수, 앉힐수있는최대사람수+1)로 함수외부에 선언된 변수를 참조하는데 어떻게 global 키워드를 사용하지 않고도 함수외부의 변수를 참조할수 있는지가 궁금합니다.! 이 문제는 이해하기 어려워 한숨 세번째 쉬고 다시 보고 있습니다.

    • @윤인성
      @윤인성  5 месяцев назад

      정확하게는 "외부 스택에 있는 변수의 값을 변경할 때"에 global 키워드를 붙여야 합니다.
      관련된 내용은 다음 강의를 참고해보시면 좋을 것 같습니다!
      ruclips.net/video/9tbjjZb65ng/видео.html

  • @doriang57
    @doriang57 2 года назад

    몇일 몸살로 사경을 헤매이다가 정신을 차리고 들어와보니 알고리즘문제라니... ㅠㅠ

    • @윤인성
      @윤인성  2 года назад +1

      그래도 지금은 나으신 것이니 다행이군요!!

  • @걸음이느린아이-n5o
    @걸음이느린아이-n5o 2 года назад

    오늘은 정말 이해하는 데 급급했네요.
    보면서 제가 이걸 제대로 이해하고 있는지 가늠이 안되네요 :<
    몇번 더 보면서, 그리고 말씀하신 python tutor를 이용해서 이해도를 높여보겠습니다.
    감사합니다.

    • @윤인성
      @윤인성  2 года назад +1

      이번 문제와 다음 하노이탑은 초급 단계에서 굉장히 어려운 문제입니다!
      댓글로 다른 분이 "백준코딩 플래티넘인데 아직도 풀지 못했다"라고 하시는 것처럼
      문제는 "아.... 뭐 이런게 있구나.... 차근차근 이해해봐야지...."해주셔도 괜찮습니다!

  • @whatrudoin_today
    @whatrudoin_today Год назад

    자존심 상한다... 못풀겠다.. 다음번에는 꼭 풀어낸다....

  • @jaekunyoo8509
    @jaekunyoo8509 Год назад

    안녕하세요. 감사히 잘 봤어요.
    전체 영상 마치고 다시 반복해서 기억지속하려 해요.
    1시간이 아니라 며칠이 걸려도 방법을 찾기 어려워요.
    2023년 7월 23일 일 14시33분 태평양 시간

  • @정지성-u6b
    @정지성-u6b Год назад +1

    다른 문제들은 어려우면 어렵다 써있는데 이 문제는 '전형적인 예제'라고 써있어서... 제가 너무 바보인건가 분해서 4일을 매달리며 고민했습니다...ㅠㅠ 참다참다 답지도 보고 유튜브까지 왔는데, 허탈하네요 아예 시작부터 접근법이 잘못됐더군요... 초반에 말한 깊이우선 너비우선 이 문제인가 싶었습니다.
    저는 모든 가능한 경우의수를 검산해서 카운트 하는 방식을 썼거든요...
    감사합니다!

    • @윤인성
      @윤인성  Год назад

      이 문제가 정말정말 어려운 문제입니다!!! 앞으로 처음 마주하시는 알고리즘 문제들은 "내가 바보인가?"하는 느낌을 많이 받으실텐데
      절대 그런 것이 아니므로 바로바로 답지 보시면서 여러 번 풀어보시면서 나아가면 좋을 것 같습니다!

  • @jaekunyoo8509
    @jaekunyoo8509 Год назад

    안녕하세요. 감사히 잘 봤어요.
    복잡 방대하네요.
    2023년 7월 10일 월 21시36분 태평양 시간

  • @걸음이느린아이-n5o
    @걸음이느린아이-n5o 2 года назад

    오늘도 감사합니다!

  • @Ikmyoungs
    @Ikmyoungs 2 года назад

    선생님 안녕하세요 요즘 선생님 강의로 파이썬 공부하는데 이해가 잘되서 감사하게 잘보고 있습니다ㅠㅠ 혹시 C#강의는 안하시나요?

    • @윤인성
      @윤인성  2 года назад

      c#은 대학 교재로 출간해서 😂.... 교수님들의 항의가 들어올 수 있어 강의를 찍지 못합니다 😂

    • @Ikmyoungs
      @Ikmyoungs 2 года назад

      @@윤인성 그렇군요ㅠㅠ 아쉽네요 알겠습니다 앞으로도 좋은 강의 부탁드려용~~

  • @Pre-dic
    @Pre-dic Год назад

    선생님 람다 파트강의를 보다가 궁금한게 있어서 질문 드립니다.
    직접 해보는 손코딩 map()함수와 filter()함수를 보는 중
    def power(item):
    return item * item
    def under_3(item):
    return item < 3
    list_a = [1,2,3,4,5,6]
    print(list_a)
    output_a = map(power, list_a)
    print(output_a)
    print(list(output_a))
    output_b = filter(under_3, list_a)
    print(output_b)
    print(list(output_b))
    여기서 print(output_a)와 print(output_b)는 출력하면 , 이렇게 실행이 되는데
    print(list_a)의 경우 [1, 2, 3, 4, 5, 6]이렇게 출력이 되는지 알 수 있을까요?

    • @윤인성
      @윤인성  Год назад +1

      질문 올려주신 글을 보고
      어떤 답변을 원하시는지 살짝 이해하기가 힘든데,
      넵 그렇게 출력이 됩니다!

    • @Pre-dic
      @Pre-dic Год назад

      @@윤인성
      저도 질문하고, 진도를 계속 나가다가 뭐를 물어볼려고 했는지 기억이 안 납니다. ㅎㅎ
      어차피 2회독 3회독까지 생각중이라 공부하다가 해결이 안 되면 다시 문의 드리겠습니다.
      강의 항상 잘 보고 있고, 너무 감사합니다🙂

  • @이름없음-i2d
    @이름없음-i2d Год назад

    선생님 11:24에 max(2,이전화살표에적힌숫자)는 왜 하신 건가요? 이 부분이 이해가 잘 가지 않네요

    • @윤인성
      @윤인성  Год назад +1

      앗 없어도 됩니다.
      이게 "생각의 흐름대로 빠르게 푸는 모습"을 보여드리다보니
      그냥 무의식적으로 """변수 '이전화살표에적힌숫자'가
      2 미만도 나올 수 있지 않나?"""라고 생각해서 추가한 것입니다.
      근데 전체적으로 코드를 보면
      range(2, ㅇㅇ)으로 그래프(노드 - i, i)를 호출하므로
      2 미만의 값 자체는 나올 수 없으므로 제거하셔도 괜찮습니다!

    • @이름없음-i2d
      @이름없음-i2d Год назад

      @@윤인성 선생님 말씀은 range(max(2,이전화살표에적힌숫자),min(노드,10)+1) 자리에 그냥 range(2,min(노드,10)+1)가 들어가도 된다는 건가요? 그런데 이렇게 적으면 정답이 5가 나옵니다.

    • @이름없음-i2d
      @이름없음-i2d Год назад

      제가 궁금한 점은 (2,4)와 (4,2)가 겹치니 (4,2)를 제거해야 하는데 그 방법이 왜 range(max(2,이전화살표에적힌숫자),min(노드,10)+1) 인지입니다.

    • @윤인성
      @윤인성  Год назад +2

      앗 이동 중에 스마트폰으로 화면을 봐서 헷갈렸는데
      range(max(2,이전화살표에적힌숫자),min(노드,10)+1) 를 그대로 해주셔야 하고
      이를 활용하면
      10:36 에서 언급하는 것처럼
      "이전화살표에적힌숫자" 이상인 숫자보다 탐색을 시작하기 때문입니다.
      따라서 (2, 4)와 (4, 2) 중에서
      (4, 2)는 존재할 수 없습니다.
      (2, 4)만 탐색합니다.
      PS. 2→4처럼 "이전화살표에적힌숫자" 이상인 숫자만 탐색하기 때문입니다.
      10:03 에 있는 그래프를 함께 보시면 조금 더 이해가 쉬운데요.
      무조건 "이전화살표에적힌숫자" 이상 숫자들만 탐색하므로
      그래프에서 3→2와 4→2를 탐색하지 않습니다.

    • @이름없음-i2d
      @이름없음-i2d Год назад

      @@윤인성 친절한 설명 감사합니다 선생님!

  • @스르륵srr
    @스르륵srr Год назад

    선생님 너무 이해가 안되서 질문 드립니다....
    선생님이 작성하신 코드에서는 리턴값이 없는데 함수로 계속 돌아가는 모습이 보입니다. 그건 어째서인지 궁금하고 반복문에서 설명하시는 설명이 저한테는 조금 어렵게 느껴져서 조금만 더 자세히 설명해주실 수 있는지 여쭤봅니다...

    • @윤인성
      @윤인성  Год назад

      어떤 코드 부분인지는 모르겠지만
      함수는 return 키워드를 명시적으로 안 써도 끝나면 원래 위치로 돌아갑니다(None을 들고 돌아갑니다).
      반복문은 해당 부분을 조금 더 반복해서 살펴보시는 것을 추천드립니다. 반복문이 어려우셨다면 함수 이해는 더 힘들므로, 반복문 부분부터 천천히 살펴보시는 것을 추천드립니다.

  • @위강순
    @위강순 2 года назад

    왜 2-4 와 4-2는 앉히는 순서가 다른 다른 방법인데 중복으로 하나를 제거하는지요,?

    • @윤인성
      @윤인성  2 года назад

      문제에서 "순서는 상관하지 않는다"라고 했으니까요!

    • @위강순
      @위강순 2 года назад

      @@윤인성 아네 감사합니다.~

  • @jeongyoonkang959
    @jeongyoonkang959 2 года назад

    선생님. 이번 강의 코드에서 range(max(블라블라),min(블라블라)+1) 부분에서, 노드를 계속 타고 가다보면 max()리턴값이 min()의 리턴값보다 커져 range(4,3)과 같은 꼴처럼 되는 단계들이 있는데 이 경우 에러를 띄우지 않고 그냥 실행이 안되는 채로 자동으로 continue되는 것인가요? 코드 분석하는데 그 부분이 걸리네요

    • @jeongyoonkang959
      @jeongyoonkang959 2 года назад

      파이썬 튜터로 돌려보니 for i in range(x,y)에서 x>y면 바로 함수 내부에서 None을 리턴하고 함수를 종료시키네요..
      이것도 그냥 파이썬의 규칙인가요..?

    • @jeongyoonkang959
      @jeongyoonkang959 2 года назад

      아 조금 더 연구해보니
      for i in range(4,3) :
      print(i)
      하니 아무 일도 일어나지 않았습니다.
      그렇다면, 제 추측이 맞다면 아마도
      재귀된 함수 안에서 반복문이 돌아가는데, 위와 같은 상황이 되면 반복문이 아무 일도 일어나지 않은 채 종료되고, 함수는 표현식으로 작성된 모든 일을 다 끝마쳤기 때문에 종료하게 되는데, 리턴값을 정해두지 않았기 때문에 None이 리턴된 것인가요?
      어차피 우리의 목표는 함수의 리턴값이 중요한 게 아니라 함수 내부에서 조건문으로 count 변수에 카운팅하는 것이니 상관이 없는 것이고요?

    • @윤인성
      @윤인성  2 года назад

      range(4, 3)하면 4부터 3까지 1씩 증가하면서 반복되는데,
      이게 불가능하므로 반복이 일어나지 않습니다.
      역으로 돌리려면 range(4, 3, -1)을 해야 합니다.
      PS. C, Java, C++, C# 등의 프로그래밍 언어를 해보시면 조금 더 정확하게 알 수 있는데
      (1) i = 4로 놓고
      (2) i < 3이 True일 동안
      (3) i += 1하면서 반복
      하게 되는데 i = 4라서 시작부터 (2)에서 False가 나와서,
      범위 자체를 생성하지 못하고 반복도 못합니다.

    • @jeongyoonkang959
      @jeongyoonkang959 2 года назад

      @@윤인성 아 range(4,3,1)에 나열하신 로직이 내재되어 있던 것인가요? 그런 자세한 내용은 모르고 있었어요.

    • @윤인성
      @윤인성  2 года назад

      넵 그렇습니다! list(range(4, 3))을 해보시면 아무 것도 없는 리스트가 나오는 것을 확인하실 수 있습니다.

  • @고독한승부사-m5x
    @고독한승부사-m5x 2 года назад

    아이고 두야..