문제 해결
문제 해결
  • Видео 226
  • Просмотров 31 025
두 원 사이의 정수 쌍 - Python3
문제 링크 : school.programmers.co.kr/learn/courses/30/lessons/181187
========== 영상 시청 방법 ==========
1. 영상의 앞부분 문제 설명을 시청하며 같이 문제를 이해한다.
2. 문제 풀이 부분을 들어보기 전에 영상을 멈추고 어떤 방식으로 문제를 풀 지 생각을 해본다.
(틀려도 좋습니다. 대략적인 생각이라도 좋습니다. 코드로 작성을 하지 않아도 좋습니다. 발전을 위해서는 스스로 생각해보는 과정이 꼭 필요합니다.)
3. 내가 생각한 풀이 방법과 영상의 풀이 방법을 비교하며 나머지 영상을 시청한다.
(코드를 작성한다면 여기서 많은 이득을 얻을 수 있습니다. 생각만 해봐도 공부가 많이 되긴 하지만 내가 어디서 틀렸는지 확인하기 힘듭니다. 왜냐하면 내 논리는 내 머릿속에서는 항상 맞기 때문입니다. 코드를 작성한다면 테스트 케이스를 통해 틀린 부분이 있다는것을 인지시켜 주기 때문에 "강의랑 내 코드랑 차이가 없는데 왜 내껀 안 돌아가지?" 라는 고민을 통해 2차적으로 성장할 수 있습니다.)
#프로그래머스
#알고리즘
#코딩테스트
#문제해결
#Python3
Просмотров: 573

Видео

요격 시스템 - Python3
Просмотров 499Год назад
문제 링크 : school.programmers.co.kr/learn/courses/30/lessons/181188 영상 시청 방법 1. 영상의 앞부분 문제 설명을 시청하며 같이 문제를 이해한다. 2. 문제 풀이 부분을 들어보기 전에 영상을 멈추고 어떤 방식으로 문제를 풀 지 생각을 해본다. (틀려도 좋습니다. 대략적인 생각이라도 좋습니다. 코드로 작성을 하지 않아도 좋습니다. 발전을 위해서는 스스로 생각해보는 과정이 꼭 필요합니다.) 3. 내가 생각한 풀이 방법과 영상의 풀이 방법을 비교하며 나머지 영상을 시청한다. (코드를 작성한다면 여기서 많은 이득을 얻을 수 있습니다. 생각만 해봐도 공부가 많이 되긴 하지만 내가 어디서 틀렸는지 확인하기 힘듭니다. 왜냐하면 내 논리는 내 머릿속에서는 항상 맞기 ...
공원 산책 - Python3
Просмотров 218Год назад
문제 링크 : school.programmers.co.kr/learn/courses/30/lessons/172928?language=python3 영상 시청 방법 1. 영상의 앞부분 문제 설명을 시청하며 같이 문제를 이해한다. 2. 문제 풀이 부분을 들어보기 전에 영상을 멈추고 어떤 방식으로 문제를 풀 지 생각을 해본다. (틀려도 좋습니다. 대략적인 생각이라도 좋습니다. 코드로 작성을 하지 않아도 좋습니다. 발전을 위해서는 스스로 생각해보는 과정이 꼭 필요합니다.) 3. 내가 생각한 풀이 방법과 영상의 풀이 방법을 비교하며 나머지 영상을 시청한다. (코드를 작성한다면 여기서 많은 이득을 얻을 수 있습니다. 생각만 해봐도 공부가 많이 되긴 하지만 내가 어디서 틀렸는지 확인하기 힘듭니다. 왜냐하면 내 논리...
추억 점수 - Python3
Просмотров 89Год назад
문제 링크 : school.programmers.co.kr/learn/courses/30/lessons/176963?language=python3 영상 시청 방법 1. 영상의 앞부분 문제 설명을 시청하며 같이 문제를 이해한다. 2. 문제 풀이 부분을 들어보기 전에 영상을 멈추고 어떤 방식으로 문제를 풀 지 생각을 해본다. (틀려도 좋습니다. 대략적인 생각이라도 좋습니다. 코드로 작성을 하지 않아도 좋습니다. 발전을 위해서는 스스로 생각해보는 과정이 꼭 필요합니다.) 3. 내가 생각한 풀이 방법과 영상의 풀이 방법을 비교하며 나머지 영상을 시청한다. (코드를 작성한다면 여기서 많은 이득을 얻을 수 있습니다. 생각만 해봐도 공부가 많이 되긴 하지만 내가 어디서 틀렸는지 확인하기 힘듭니다. 왜냐하면 내 논리...
달리기 경주 - Python3
Просмотров 271Год назад
문제 링크 : school.programmers.co.kr/learn/courses/30/lessons/178871 영상 시청 방법 1. 영상의 앞부분 문제 설명을 시청하며 같이 문제를 이해한다. 2. 문제 풀이 부분을 들어보기 전에 영상을 멈추고 어떤 방식으로 문제를 풀 지 생각을 해본다. (틀려도 좋습니다. 대략적인 생각이라도 좋습니다. 코드로 작성을 하지 않아도 좋습니다. 발전을 위해서는 스스로 생각해보는 과정이 꼭 필요합니다.) 3. 내가 생각한 풀이 방법과 영상의 풀이 방법을 비교하며 나머지 영상을 시청한다. (코드를 작성한다면 여기서 많은 이득을 얻을 수 있습니다. 생각만 해봐도 공부가 많이 되긴 하지만 내가 어디서 틀렸는지 확인하기 힘듭니다. 왜냐하면 내 논리는 내 머릿속에서는 항상 맞기 ...
당구 연습 - Python3
Просмотров 319Год назад
문제 링크 : school.programmers.co.kr/learn/courses/30/lessons/169198 영상 시청 방법 1. 영상의 앞부분 문제 설명을 시청하며 같이 문제를 이해한다. 2. 문제 풀이 부분을 들어보기 전에 영상을 멈추고 어떤 방식으로 문제를 풀 지 생각을 해본다. (틀려도 좋습니다. 대략적인 생각이라도 좋습니다. 코드로 작성을 하지 않아도 좋습니다. 발전을 위해서는 스스로 생각해보는 과정이 꼭 필요합니다.) 3. 내가 생각한 풀이 방법과 영상의 풀이 방법을 비교하며 나머지 영상을 시청한다. (코드를 작성한다면 여기서 많은 이득을 얻을 수 있습니다. 생각만 해봐도 공부가 많이 되긴 하지만 내가 어디서 틀렸는지 확인하기 힘듭니다. 왜냐하면 내 논리는 내 머릿속에서는 항상 맞기 ...
덧칠하기 - Python3
Просмотров 125Год назад
문제 링크 : school.programmers.co.kr/learn/courses/30/lessons/161989 영상 시청 방법 1. 영상의 앞부분 문제 설명을 시청하며 같이 문제를 이해한다. 2. 문제 풀이 부분을 들어보기 전에 영상을 멈추고 어떤 방식으로 문제를 풀 지 생각을 해본다. (틀려도 좋습니다. 대략적인 생각이라도 좋습니다. 코드로 작성을 하지 않아도 좋습니다. 발전을 위해서는 스스로 생각해보는 과정이 꼭 필요합니다.) 3. 내가 생각한 풀이 방법과 영상의 풀이 방법을 비교하며 나머지 영상을 시청한다. (코드를 작성한다면 여기서 많은 이득을 얻을 수 있습니다. 생각만 해봐도 공부가 많이 되긴 하지만 내가 어디서 틀렸는지 확인하기 힘듭니다. 왜냐하면 내 논리는 내 머릿속에서는 항상 맞기 ...
리코쳇 로봇 - Python3
Просмотров 217Год назад
문제 링크 : 영상 시청 방법 1. 영상의 앞부분 문제 설명을 시청하며 같이 문제를 이해한다. 2. 문제 풀이 부분을 들어보기 전에 영상을 멈추고 어떤 방식으로 문제를 풀 지 생각을 해본다. (틀려도 좋습니다. 대략적인 생각이라도 좋습니다. 코드로 작성을 하지 않아도 좋습니다. 발전을 위해서는 스스로 생각해보는 과정이 꼭 필요합니다.) 3. 내가 생각한 풀이 방법과 영상의 풀이 방법을 비교하며 나머지 영상을 시청한다. (코드를 작성한다면 여기서 많은 이득을 얻을 수 있습니다. 생각만 해봐도 공부가 많이 되긴 하지만 내가 어디서 틀렸는지 확인하기 힘듭니다. 왜냐하면 내 논리는 내 머릿속에서는 항상 맞기 때문입니다. 코드를 작성한다면 테스트 케이스를 통해 틀린 부분이 있다는것을 인지시켜 주기 때문에 "강의...
대충 만든 자판 - Python3
Просмотров 493Год назад
문제 링크 : school.programmers.co.kr/learn/courses/30/lessons/160586 영상 시청 방법 1. 영상의 앞부분 문제 설명을 시청하며 같이 문제를 이해한다. 2. 문제 풀이 부분을 들어보기 전에 영상을 멈추고 어떤 방식으로 문제를 풀 지 생각을 해본다. (틀려도 좋습니다. 대략적인 생각이라도 좋습니다. 코드로 작성을 하지 않아도 좋습니다. 발전을 위해서는 스스로 생각해보는 과정이 꼭 필요합니다.) 3. 내가 생각한 풀이 방법과 영상의 풀이 방법을 비교하며 나머지 영상을 시청한다. (코드를 작성한다면 여기서 많은 이득을 얻을 수 있습니다. 생각만 해봐도 공부가 많이 되긴 하지만 내가 어디서 틀렸는지 확인하기 힘듭니다. 왜냐하면 내 논리는 내 머릿속에서는 항상 맞기 ...
바탕화면 정리 - Python3
Просмотров 231Год назад
문제 링크 : school.programmers.co.kr/learn/courses/30/lessons/161990 영상 시청 방법 1. 영상의 앞부분 문제 설명을 시청하며 같이 문제를 이해한다. 2. 문제 풀이 부분을 들어보기 전에 영상을 멈추고 어떤 방식으로 문제를 풀 지 생각을 해본다. (틀려도 좋습니다. 대략적인 생각이라도 좋습니다. 코드로 작성을 하지 않아도 좋습니다. 발전을 위해서는 스스로 생각해보는 과정이 꼭 필요합니다.) 3. 내가 생각한 풀이 방법과 영상의 풀이 방법을 비교하며 나머지 영상을 시청한다. (코드를 작성한다면 여기서 많은 이득을 얻을 수 있습니다. 생각만 해봐도 공부가 많이 되긴 하지만 내가 어디서 틀렸는지 확인하기 힘듭니다. 왜냐하면 내 논리는 내 머릿속에서는 항상 맞기 ...
k진수에서 소수 개수 구하기 - Python3
Просмотров 100Год назад
영상 시청 방법 1. 영상의 앞부분 문제 설명을 시청하며 같이 문제를 이해한다. 2. 문제 풀이 부분을 들어보기 전에 영상을 멈추고 어떤 방식으로 문제를 풀 지 생각을 해본다. (틀려도 좋습니다. 대략적인 생각이라도 좋습니다. 코드로 작성을 하지 않아도 좋습니다. 발전을 위해서는 스스로 생각해보는 과정이 꼭 필요합니다.) 3. 내가 생각한 풀이 방법과 영상의 풀이 방법을 비교하며 나머지 영상을 시청한다. (코드를 작성한다면 여기서 많은 이득을 얻을 수 있습니다. 생각만 해봐도 공부가 많이 되긴 하지만 내가 어디서 틀렸는지 확인하기 힘듭니다. 왜냐하면 내 논리는 내 머릿속에서는 항상 맞기 때문입니다. 코드를 작성한다면 테스트 케이스를 통해 틀린 부분이 있다는것을 인지시켜 주기 때문에 "강의랑 내 코드랑 ...
타겟 넘버 - Python3
Просмотров 647Год назад
영상 시청 방법 1. 영상의 앞부분 문제 설명을 시청하며 같이 문제를 이해한다. 2. 문제 풀이 부분을 들어보기 전에 영상을 멈추고 어떤 방식으로 문제를 풀 지 생각을 해본다. (틀려도 좋습니다. 대략적인 생각이라도 좋습니다. 코드로 작성을 하지 않아도 좋습니다. 발전을 위해서는 스스로 생각해보는 과정이 꼭 필요합니다.) 3. 내가 생각한 풀이 방법과 영상의 풀이 방법을 비교하며 나머지 영상을 시청한다. (코드를 작성한다면 여기서 많은 이득을 얻을 수 있습니다. 생각만 해봐도 공부가 많이 되긴 하지만 내가 어디서 틀렸는지 확인하기 힘듭니다. 왜냐하면 내 논리는 내 머릿속에서는 항상 맞기 때문입니다. 코드를 작성한다면 테스트 케이스를 통해 틀린 부분이 있다는것을 인지시켜 주기 때문에 "강의랑 내 코드랑 ...
전화번호 목록 - Python3
Просмотров 121Год назад
영상 시청 방법 1. 영상의 앞부분 문제 설명을 시청하며 같이 문제를 이해한다. 2. 문제 풀이 부분을 들어보기 전에 영상을 멈추고 어떤 방식으로 문제를 풀 지 생각을 해본다. (틀려도 좋습니다. 대략적인 생각이라도 좋습니다. 코드로 작성을 하지 않아도 좋습니다. 발전을 위해서는 스스로 생각해보는 과정이 꼭 필요합니다.) 3. 내가 생각한 풀이 방법과 영상의 풀이 방법을 비교하며 나머지 영상을 시청한다. (코드를 작성한다면 여기서 많은 이득을 얻을 수 있습니다. 생각만 해봐도 공부가 많이 되긴 하지만 내가 어디서 틀렸는지 확인하기 힘듭니다. 왜냐하면 내 논리는 내 머릿속에서는 항상 맞기 때문입니다. 코드를 작성한다면 테스트 케이스를 통해 틀린 부분이 있다는것을 인지시켜 주기 때문에 "강의랑 내 코드랑 ...
연속 부분 수열 합의 개수 - Python3
Просмотров 146Год назад
영상 시청 방법 1. 영상의 앞부분 문제 설명을 시청하며 같이 문제를 이해한다. 2. 문제 풀이 부분을 들어보기 전에 영상을 멈추고 어떤 방식으로 문제를 풀 지 생각을 해본다. (틀려도 좋습니다. 대략적인 생각이라도 좋습니다. 코드로 작성을 하지 않아도 좋습니다. 발전을 위해서는 스스로 생각해보는 과정이 꼭 필요합니다.) 3. 내가 생각한 풀이 방법과 영상의 풀이 방법을 비교하며 나머지 영상을 시청한다. (코드를 작성한다면 여기서 많은 이득을 얻을 수 있습니다. 생각만 해봐도 공부가 많이 되긴 하지만 내가 어디서 틀렸는지 확인하기 힘듭니다. 왜냐하면 내 논리는 내 머릿속에서는 항상 맞기 때문입니다. 코드를 작성한다면 테스트 케이스를 통해 틀린 부분이 있다는것을 인지시켜 주기 때문에 "강의랑 내 코드랑 ...
[1차] 뉴스 클러스터링 - Python3
Просмотров 131Год назад
영상 시청 방법 1. 영상의 앞부분 문제 설명을 시청하며 같이 문제를 이해한다. 2. 문제 풀이 부분을 들어보기 전에 영상을 멈추고 어떤 방식으로 문제를 풀 지 생각을 해본다. (틀려도 좋습니다. 대략적인 생각이라도 좋습니다. 코드로 작성을 하지 않아도 좋습니다. 발전을 위해서는 스스로 생각해보는 과정이 꼭 필요합니다.) 3. 내가 생각한 풀이 방법과 영상의 풀이 방법을 비교하며 나머지 영상을 시청한다. (코드를 작성한다면 여기서 많은 이득을 얻을 수 있습니다. 생각만 해봐도 공부가 많이 되긴 하지만 내가 어디서 틀렸는지 확인하기 힘듭니다. 왜냐하면 내 논리는 내 머릿속에서는 항상 맞기 때문입니다. 코드를 작성한다면 테스트 케이스를 통해 틀린 부분이 있다는것을 인지시켜 주기 때문에 "강의랑 내 코드랑 ...
프린터 - Python3
Просмотров 80Год назад
프린터 - Python3
귤 고르기 - Python3
Просмотров 184Год назад
귤 고르기 - Python3
기능개발 - Python3
Просмотров 127Год назад
기능개발 - Python3
n^2 배열 자르기 - Python3
Просмотров 109Год назад
n^2 배열 자르기 - Python3
둘만의 암호 - Python3
Просмотров 112Год назад
둘만의 암호 - Python3
카드 뭉치 - Python3
Просмотров 86Год назад
카드 뭉치 - Python3
튜플 - Python3
Просмотров 84Год назад
튜플 - Python3
위장 - Python3
Просмотров 366Год назад
위장 - Python3
행렬의 곱셈 - Python3
Просмотров 446Год назад
행렬의 곱셈 - Python3
괄호 회전하기 - Python3
Просмотров 368Год назад
괄호 회전하기 - Python3
index slicing을 사용하는 방법 - Python3
Просмотров 72Год назад
index slicing을 사용하는 방법 - Python3
for문을 사용하는 방법 - Python3
Просмотров 51Год назад
for문을 사용하는 방법 - Python3
조건문을 발동시키는 방법 - Python3
Просмотров 114Год назад
조건문을 발동시키는 방법 - Python3
H-Index - Python3
Просмотров 204Год назад
H-Index - Python3
[1차] 캐시 - Python3
Просмотров 72Год назад
[1차] 캐시 - Python3

Комментарии

  • @hiyo4415
    @hiyo4415 18 дней назад

    감사합니다~~

  • @하나씩더해가는이야기
    @하나씩더해가는이야기 19 дней назад

    똑 같이 써도 저는 답이 아니라고 나와서 여기저기 살펴보다 정답이라고 되는 코드를 찾았는데요 이해가 안가서 질문드립니다 def solution(my_string): answer = 0 num=0 for i in my_string: if i.isdigit(): num=num*10+int(i) #이부분요 else : answer+=num num=0 answer+=num return answer

  • @hiyo4415
    @hiyo4415 28 дней назад

    코딩을 잘 하려면 수학을 잘 알아야되겠네요

    • @Problem_Solution
      @Problem_Solution 27 дней назад

      수학, 논리학은 도움이 많이 되는 것 같아요. 특히 표면적 구현이 아닌 알고리즘에서..

  • @이태희-o6n
    @이태희-o6n 2 месяца назад

    소리가 너무 작네요ㅠㅠ 풀이 감사합니다!

  • @gomuhamji1
    @gomuhamji1 5 месяцев назад

    강의 감사합니다. ^^

  • @이강철-j2t
    @이강철-j2t 6 месяцев назад

    혹시 알고리즘 문제는 어떻게 해결해야하는지 팁이 있을까요?? 문제는 이해하지만 막상 코드로 작성하려는 어려움이 있네요 ㅠㅠ 혹시 어떻게 연습해야하는지 준비해야하는지 기초부터 알 수 있는 사이트나 블로그가 있을까요?,,, 문제해결님 강의 보면서 문제를 해결해 나가서 조금 도움받고 싶어 여쭈어 봅니다 ㅠㅠ..

    • @Problem_Solution
      @Problem_Solution 5 месяцев назад

      추천드릴만한 사이트나 블로그는 제가 잘 모르지만 저는 이렇게 공부했었습니다. 알고리즘 배울 때 0. 알고리즘에 대해 공부! 1. 구글에서 해당 알고리즘 동작 gif찾아서 보기 2. 1을 통해 이해했다면 스스로 flow-chart 그려보기 3. 2를 통해 정리했다면 코드로 구현해보기 구현력을 늘리기 위해 1. 소수판별 구현 (for문 -> 에라토스테네스의 체) 2. n번째 피보나치 수 구현 (for문 -> 재귀 -> 메모이제이션) 3. 하노이의 탑 구현 4. BFS, DFS, 길찾기, sorting, tic-tac-toe등 관심가는 분야 구현 위에 내드린 알고리즘 공부법 실천해보시고, 과제 수행해보시면 공부에 도움이 될 것 같습니다! 추가) 개인적으로 시각화 되어있는 자료들 좋아해서 brilliant.org 사용해보고 싶었는데 유료라서 사용해보지는 못했었습니다.. ㅎㅎ

  • @jpad9142
    @jpad9142 10 месяцев назад

    last 를 for 이 돌 때마다 0으로 초기화를 안해줘서 그런것같아요! 함수로 만들고 나서는 for문안에 last 가 들어가면서 자연스럽게 해결된거 아닐까요?

    • @jpad9142
      @jpad9142 10 месяцев назад

      방금 테스트 해보니 처음 작성해주신 코드에서 last = 0 구문만 for문 안으로 넣어주니 정상적으로 통과하네요! 항상 영상 잘보고있습니다 :)

    • @Problem_Solution
      @Problem_Solution 10 месяцев назад

      오... 정확하십니다... 감사합니다... 영상 찍을 당시에는 몰랐는데 지나고 다시 보니 부족한 부분이 많네요... 강의 구성도 더 컴팩트하게 할 수 있었을 것 같고... 내용도 조금 더 알차게 했을 수 있을 것 같고... 시청해주셔서 감사합니다! 영상은 올리지 못하고 있지만 질문은 계속 받고 있습니다! 편하게 질문 남겨 주세요!

  • @kkomi929
    @kkomi929 11 месяцев назад

    감사합니당!

  • @AustinLee-g4m
    @AustinLee-g4m 11 месяцев назад

    안녕하세요, 정말 영상을 통해 정말 잘 배우고 있습니다. 질문이 하나 있는데, 제가 알고리즘을 기억하면서 따라 쳐봤는데 if grid[new_row][new_col] == 0 and new_row in range(row) and new_col in range(col): 라고 조건문을 짜면 몇개의 테스트케이스에서 런타임 에러가 나더라고요... 혹시 이 조건에서 런타임 에러가 나는 이유를 알 수 있을까요? 코드의 다른 부분들은 다 같았고, 저렇게 조건문의 순서를 적으니까 에러가 나왔습니다.

    • @Problem_Solution
      @Problem_Solution 11 месяцев назад

      답변이 늦어 죄송합니다. 요즘 현생의 압박으로 강의는 올리지 못하고 있지만 질문에 답변은 최대한 하려고 노력하고 있습니다. 앞조건 and 뒤조건 과 같은 예시 코드에서 앞조건이 false가 된다면 뒤조건의 tf여부와 상관없이 결과가 false가 됩니다. 따라서 앞조건이 false일 경우 뒤조건은 결과에 영향력이 없기 때문에 참거짓을 판단하지 않습니다. 마찬가지로 앞조건 or 뒤조건 과 같은 예시 코드에서 앞조건이 true가 된다면 뒤조건의 tf여부와 상관없이 결과가 true가 됩니다. 따라서 앞조건이 true일 경우 뒤조건은 결과에 영향력이 없기 때문에 참거짓을 판단하지 않습니다. 위의 and 조건의 작동원리로 질문 코드를 읽어보면 새위치가그리드범위내에있는가 and 새위치에장애물이없는가 와 같은 코드는 다음과 같은 기능을 합니다. 범위내에있다(앞조건 true)면 새위치에장애물이없는가(뒤조건진위여부)인지 판단하라 범위밖에있다(앞조건 false)면 새자리 확인할 필요도 없다(확인하면 할당되지 않은 메모리 접근으로 오류 발생할 수 있는데 이것을 이렇게 방지할 수 있다) 질문자님이 작성하신 코드는 다음과 같은 순서로 진위 판정을 하고 있습니다. 새위치에장애물이없는가 and 새위치가그리드범위내에있는가 이런 경우 새위치에장애물이없는가 를 판단할 때 선언된 사이즈 밖의 인덱스를 접근하게 되어 런타임 에러가 발생할 수 있습니다. 리스트를 접근하기 전 선언된 범위내의 인덱스를 접근할 것인지 확인을 해주는 과정이 꼭 필요합니다. 그리고 저는 and문의 특성을 이용하여 범위내에있으면체크, 범위밖에있으면 접근시 에러가 발생 가능하지 체크하지 않음 을 구현했습니다. 영상 시청해주셔서 감사합니다!

    • @AustinLee-g4m
      @AustinLee-g4m 11 месяцев назад

      덕분에 이해했습니다!! 정말 감사합니다 :)

  • @홍석표-y3u
    @홍석표-y3u Год назад

    논리가 엄청 깔끔하네요! 잘 봤습니다!

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

      감사합니다! 문제의 요구사항을 정리한 다음 코드 작성을 진행하는 방식이 도움이 되는 것 같습니다!

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

    오랜만에 다시 와서 공부중입니다 영상 쭉 보고 두번째 보고있는데요, 저는 문제를 읽고 문제가 요구하는 과정을 세세하게 전부 구현하려고 노력하는편인데 이렇게 하니까 오히려 테스트케이스 일부를 맞추지 못해서 3시간씩 디버깅 하다가 어거지로 예외처리를 해 문제를 푸는 경우가 더 많아졌습니다. 그런데 해결님은 전체 과정을 시뮬레이션 하듯 구현하려고 하기 보다 끝에서 하나씩 빼는 과정을 두번 반복해서 문제를 푸셨네요 문제를 간략하게 추상화 해서 문제를 푸셨다고 생각합니다. 이렇게 접근 하는 자신감? 근거?는 어디서 나오는걸까요? 예를 들어 이 문제 예시 1번은 처음부터 최대로 실을수 있는 택배량인 '4' 를 싣지 않고 3만 큼 싣고, 3을 배달한 다음, 4 만큼 회수에서 돌아오는 과정을 보여줍니다. 즉 매 위치마다 '배달해서 비운 만큼, 회수해서 채울 수 있다' 과정이 존재합니다. 저는 이 과정을 시뮬레이션 하듯 매 반복마다 구현하려고 노력했는데 분기가 너무 많아져서 이렇게 풀면 실제 시험에서 망하겠구나...라고 직감적으로 느꼈습니다. 이런 어려움을 겪는 상황에서 해주실 조언이 있으실까요?

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

      Dead liest님 "3개 배달"의 예시가 함정이라는것을 파악하시다니 예리하십니다. 사실 "최대한 많이 최대한 멀리" 라는 원리로 접근해야 하는 문제인데 "3개 배달"로 집3은 건드리지 않고 집4, 집5를 처리하는 모습을 보여줘서 마치 "집 단위로 배달을 하는게 유리한가?" 라는 생각이 들게하고 이를 통해 "집 단위로 분기하여 재귀를 통한 전탐색을 해야하나?" 라는 생각의 flow를 이끌어내는 함정이었다고 개인적으로 생각합니다. 제가 완벽한 파회법을 알지는 못하지만 개인적으로 쓰는 접근방식을 말씀드리겠습니다. [ 문제를 읽을 때 ] 문제를 읽을 때 "설명대로" 읽지 않으시고 "설명의 의미를 생각하며" 읽어보시는게 좋을 것 같습니다. 지금 문제에서는 다음과 같은 단서들을 추출할 수 있다고 생각합니다. "트럭 하나로 모든 배달과 수거" -> 최대한 짐칸을 비우고 수거를 하는게 좋겠다. -> 가면서 배달해서 트럭 비우고 오면서 수거하자. -> 이번_배달에_걸리는_이동거리 = 이번_배달중에_들린_가장_먼_집의_위치 * 2 "모든 배달과 수거를 마치고 물류창고까지 돌아올 수 있는" -> 멀리있는집 가기 싫지만 배재할 수 없다. "최소 이동 거리를 구하려 합니다" -> 멀리까지 가는 경우를 최대한 줄여야겠다. -> 이번_배달중에_들린_가장_먼_집의_위치 를 매번 줄이려면 가장 먼 집부터 배달, 픽업을 완료하자. 이런식의 분석을 할 수 있었던 것 같습니다. [ 예시를 읽을 때 ] 1.예시는 알고리즘 작동에 대한 step by step 설명이 아닙니다. 같은 솔루션에 이르는 여러 길 중 하나를 보여줄 뿐입니다. 예시를 읽으며 Specific한 접근법을 알기는 어렵기 때문에 General한 방법이 무엇인지 고민해봐야 합니다. 지금 문제의 예시를 step by step으로 사용하기 위해서는 "왜 트럭을 꽉 채운게 아니라 3개만 채운것인지"를 판단하는 즉"출발시 몇개를 채워서 가는게 맞는지"를 판단하는 알고리즘을 작성할 수 있어야 합니다. 하지만 제 경우에는 예시를 읽으며 "출발시 몇개를 채워서 가는게 맞는지 판단하는 알고리즘"은 떠올릴 수 없었지만, "멀리있는 집부터 처리"하는 "General"한 과정을 확인할 수 있었고 이에따라 문제를 접근하였습니다. 정말 악질 예시는 "General"한 과정의 확인조차 방해할 수 있지만 이런 경우는 문제가 잘못한 것 이라고 생각합니다. ex) 해당 문제의 예시를 다음과 같이 줄 경우 1/0 0/3 3/0 1/4 2/0 4개 실어서 출발 (화물 : 4개) 0/0 0/3 3/0 1/4 2/0 1번집 1개 배달 (화물 : 3개) 0/0 0/3 0/0 1/4 2/0 3번집 3개 배달 (화물 : 0개) 0/0 0/0 0/0 1/4 2/0 2번집 3개 픽업 (화물 : 3개) 1번배달 거리 = 3(왕) + 3(복) 0/0 0/0 0/0 1/4 2/0 3개 실어서 출발 (화물 : 3개) 0/0 0/0 0/0 0/4 2/0 4번집 1개 배달 (화물 : 2개) 0/0 0/0 0/0 0/4 0/0 5번집 2개 배달 (화물 : 0개) 0/0 0/0 0/0 0/0 0/0 4번집 4개 픽업 (화물 : 4개) 2번배달 거리 = 5(왕) + 5(복) 총 배달거리 = 1번 배달거리 + 2번 배달거리 = 16 이런 나쁜 예시도 있을 수 있다 라는 경각심을 가지고 있으셔야 합니다. 줄여서 다시 말하면 "예시를 그대로 step by step으로 쓰고싶다"면 "예시처럼 판단하는 모든 근거를 알고리즘화 할 수 있어야"하고 이게 불가능 하다면 예시는 정답에 도달하는 케이스중 하나일 뿐입니다. 2.예시를 조금씩 다르게 해서 문제를 분석하려고 해보세요 옳은게 뭔지 확인하는것은 어려운 반면 틀린것을 반면교사 삼아 코드를 수정하는 것은 쉬울 수 있기 때문에 예시를 조금씩 다르게 하면서 어떤 경우에 틀리는지 확인하며 코드를 수정하는 방법도 좋은 방법중 하나라고 생각합니다.

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

    투 포인터로 s[front] == s[back] 인 경우 back을 늘려서 다른 문자가 나올때 까지 탐색 다른문자가 나오면 s = s[:front] + s[back] 문자열 잘라내기 업데이트 이렇게 만들었는데 시간초과가 발생해요 문자열 슬라이싱으로 업데이트하는 과정이 문제일까요?

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

      1. 슬라이싱의 경우 새로운 list를 할당하는 과정이기 때문에 list의 길이에 비례하는 시간 복잡도를 갖게 됩니다. 2. 문제 조건에서 짝을 이루면 소거가 가능한데, s[front] == s[back] 상태에서 back을 늘려서 다른 문자를 찾는 이유를 이해하기 어렵습니다. 2번의 경우 전체 코드를 올려주시면 제가 다시 확인해보도록 하겠습니다.

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

    혼자 생각할때 투포인터가 새로운 조합을 찾도록 프론트, 백 인덱스를 적절하게 옮기는걸 생각못했는데 그냥 프론트만 한칸 뒤로 밀어주면 백 인덱스가 자연스럽게 더 큰수를 만드려고 뒤로 이동함 + 새로운 조합 효과가 나오는군요

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

      찾고자 하는 값을 찾았을 때 고착상태에 빠질 수 있기 때문에 투포인터중 하나를 진행방향으로 옮겨주는 작업이 필요하게 됩니다. 제가 지금 다시 생각해보니 while문의 종료조건인 front < back 조건에 문제가 발생하지 않게 하려면 고착 조건에서 front를 진행시키기 보다는 (front증가시 인위적인 조작으로 while문의 종료조건이 달성될 수 있음.) back을 진행시키고 loop의 자연스러운 logic에 따라 front가 자연스럽게 back을 따라잡도록 두는게 맞았다고 생각이 됩니다.

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

    재귀함수는 책에서 트리를 그려서 방문순서만 외웠는데 문제풀떈 이렇게 하는군요 함수선언 -> if문 (종료조건쓰기: 마지막 리프노드에 처리 로직) -> for문 (리프노드까지 내려가기 = 조합 생성 1111, 1112, 1113 .... 4444 등) -> 다시 자기 함수 호출 실제로 적용하는건 느낌이 아예다르네요... 많이배웠습니다

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

      재귀함수 사용시에 if (종료조건): 종료 else: 분기를 통한 자기호출 부분은 거의 항상 사용됩니다. 결과를 종합할 때는 1. if 종료조건 부분에서 return으로 값을 넘겨주고, 상위 분기점에서 return값을 받아 처리후 다시 넘기는 방식 2. list같은 결과를 담을 자료구조를 재귀를 통해 전달하고 if 종료조건 부분에서 return하는 대신 자료구조에 결과를 추가하고 종료 와 같은 초이스가 있습니다. 문제에 따라 적절히 사용하시면 좋습니다.

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

    영상 올려줘요

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

      요즘 멘탈 박살이라 힘이 없네요 ㅎㅎ;;

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

      천천히 하셔두 됩니다! 지금 있는 영상들도 아주 도움많이 받구 있어용

  • @만두-y3s
    @만두-y3s Год назад

    그래프로 나타내려면 어떻게 해야하죠

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

      음... 어떤 부분을 그래프로 나타내고 싶으신지 잘 모르겠지만 Python에서는 그래프를 그릴 때 matplotlib ( 링크 : matplotlib.org/ ) 라이브러리를 많이 사용합니다. 데이터 사이언스 쪽에서도 활용하는 경우가 많기 때문에 알아놓으면 좋습니다.

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

    좋은 영상 감사합니다 :D

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

      감사합니다! 질문있으시면 댓글로 편하게 남겨주세요!

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

    헐레벌떡 확인했슴당 꾸준하셔서 너무 좋아요 정말 동기부여가 많이 됩니다!

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

      탕구리님 꾸준히 봐주셔서 감사합니다. 최근 개인적 이슈로 업로드 좀 못했었는데 다시 꾸준히 올려보도록 하겠습니다!

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

    bfs 원리 이해안되었는데 덕분에 이해되었습니다 !!

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

      제 강의가 도움이 되었다니 매우 기쁩니다. 공부하시다 이해가 어려우신 부분들 편하게 댓글로 질문해주세요!

  • @개발자가되려고발악하

    녹음을 너무 작게 하셨네요..!

  • @박주형-c6k8p
    @박주형-c6k8p Год назад

    강의 너무 잘 보고 있습니다.

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

    java 가 없다니..

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

      java 강의는 예정에 없습니다… 죄송합니다…

  • @군하-l2y
    @군하-l2y Год назад

    시청 잘했습니다~ heappop 메서드가 궁금한데요 [(1,0,4),(1,1,6)]에서 어떤 우선순위로 (1,0,4)를 빼내는 건가요?

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

      heapq는 완전 이진트리 기반의 최소 힙 자료구조입니다. heapq의 두가지 특징에 대해 설명드리겠습니다. 1. "이진트리 기반" heapq는 이진트리를 1차원 배열 표현 방식으로 저장했기 때문에 리스트의 형태를 하고 있습니다. ( ko.wikipedia.org/wiki/이진_트리 표현방법-1차원 배열 표현 ) 에서 이진트리를 1차원 배열로 표현 가능하다는 것을 확인할 수 있습니다. ( mhlee.tistory.com/8 힙(heap)의 구현) 에서 더 자세한 설명을 확인할 수 있습니다. 부모의 위치에는 자식의 위치에 있는 두 값보다 우선순위가 큰 값이 항상 위치합니다. 하지만 두 자식간 우선순위는 저장된 위치와 무관합니다. list의 idx0 위치에는 트리의 최소값이 위치한다. (하지만 list의 마지막 idx위치에 트리의 최대값이 위치하지는 않는다.) 2. "최소힙" 2.1 트리의 각 노드는 그 사전적 순서에 따라 정렬됩니다. (a가 z보다 앞에 오고, 0이 100의 앞에 오게 됩니다.) 2.2 값이 여러개인 tuple형태의 값를 정렬할때는 index가 낮은 값부터 2.1의 기준에 따라 비교하여 정렬하게 됩니다. (1, 0, 4)와 (1, 1, 6)을 저장할 때는 다음과 같은 과정에 따라 값들을 정렬하게 됩니다. idx0의 값 비교 1 == 1 우선순위 없음 idx1의 값 비교 0 < 4 최소 힙 이기 때문에 0 이 앞선 우선순위. 정렬의 우선순위에 대한 궁금증 이라면 2.2의 설명이 답변이 되셨으면 좋겠습니다.

    • @군하-l2y
      @군하-l2y Год назад

      @@Problem_Solution 감사합니다 도움이되었습니다 . 어렵네요

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

      @군하 언어에 대한 이해도가 있어야 최적화에 도움이 많이 됩니다! 이런 기초적인 부분에 대한 공부가 시간복잡도, 메모리 사이즈 최적화에 있어서 중요합니다!

  • @개발자가되려고발악하

    코딩 완전 초보인데 좋은 채널 발견한 것 같습니다. 근데 if 다음에 왜 card1이 들어가는지 모르겠습니다. cards1[0] == word만 비교해도 되지 않나요? def solution(cards1, cards2, goal): for word in goal: i = 0 j = 0 if word == cards1[i]: i += 1 elif word == cards2[j]: j += 1 else: return "No" return "Yes" 그리고 이건 제가 작성한건데 혹시 어디가 틀린건지 봐주실 수 있을까요?

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

      우선 작성된 코드의 논리를 확인하겠습니다. 영상에서는 맨앞에 원하는 단어가 있는지 확인하고 (cards[0] == word) 일치할 경우 사용한 카드를 삭제 하는 (del cards[0]) 방식을, 나도이상혁 님은 현제위치에 원하는 단어가 있는지 확인하고 (cards[idx] == word) 일치할 경우 다음 위치로 idx를 넘기는 (idx += 1) 방식을 사용했다는 것을 확인할 수 있습니다. 두 풀이의 논리는 같지만 "한 번 사용한 카드는 다시 사용할 수 없습니다." 를 처리하는 방식이 다르게 구현되어 있습니다. ( 영상에서는 지워버리는 방식으로, 나도이상혁 님은 idx를 넘기는 방식으로 ) 두 방식 모두 리스트에서 요소를 참조하여 word와 비교하는 과정이 있기 때문에 여기서 오류가 발생할 수 있습니다. 영상의 방식은 지워버리는 방식이기 때문에 우선 리스트가 존재하는지를 확인한 뒤 0번째 요소에 접근하여 word와 비교해줘야 하고 ( 덱에서 카드를 뽑아서 확인해라 라는 명령을 수행해야 하는데 덱이 떨어졌다면 에러가 발생할 수 있겠죠? ) ( if cards[0] == word: -> if cards and cards[0] == word: ) 니도이상혁 님의 방식은 idx를 하나씩 뒤로 미루는 과정이기 때문에 빈 리스트가 되는 경우는 없지만 idx가 cards의 범위 내 요소를 참조하는지 확인해줘야 하는 필요가 있습니다. ( 덱의 4번째 장을 확인해봐라 라는 명령을 수행해야 하는데 덱이 3장뿐이라면 에러가 발생할 수 있겠죠? ) ( if word == cards[idx]: -> if idx < len(cards) and word == cards[idx]: ) 정리하자면 "리스트의 요소에 접근하기 전에 idx가 리스트의 범위내에 있는지 확인해줄 필요가 있다." 입니다. 나도 이상혁님의 코드를 수정해 드리자면 def solution(cards1, cards2, goal): i, j = 0, 0 for word in goal: if i < len(cards1) and word == cards1[i]: i += 1 elif j < len(cards2) and word == cards2[j]: j += 1 else: return "No" return "Yes" 와 같이 수정할 수 있겠습니다. cards1 = ["hello", "world", "PS"] cards2 = ["I", "am", "GOD"] goal = ["hello", "world", "I", "am", "PS", "GOD"] 를 예시 입력으로 사용하시고, 중간중간 print()문을 추가하셔서 어떤부분에 문제가 있는지 직접 확인해보시면 이해에 도움이 될 것 같습니다!

    • @개발자가되려고발악하
      @개발자가되려고발악하 Год назад

      @@Problem_Solution 와 진짜 상세한 설명 진짜 감사드립니다..... 사실 그냥 간단하게 설명하실 수도 있었을텐데 하나하나씩 짚어주시니까 이해를 못할 수가 없네요... 저도 나중에 누가 물어볼 때 이렇게 가르쳐줘야겠어요. 감사합니다.

  • @군하-l2y
    @군하-l2y Год назад

    def solution(elements): new_elements= elements *2 # print(elements) new_list=[] for i in range(1, len(elements)): for j in range(0, len(elements)): a= sum(new_elements[j:j+i]) 영상 보기 전 제 풀이 중 일부인데 원형으로 생각하지 않고 리스트를 두배로 늘려서 푸는 방식을 생각했는데 리스트를 늘렸기 때문에 시간오버가 된거일까요? 설명은 첫번째는 이해했고 두번째는 어렵네요 감사합니다

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

      풀이에 대해 고찰하는 자세 정말 멋지십니다. 제 경험에 의하면 군하님의 코드에서 다음 2가지 문제가 발생할 수 있습니다. 예상되는 문제 1 a = sum(new_elements[j:j+i])에서 인덱스 슬라이싱을 사용하셨는데 인덱스 슬라이싱의 경우 새로운 list를 만들기 때문에 새로 만들고자 하는 list의 길이에 비례하는 시간이 소모되게 됩니다. 따라서 start 지점과 길이에 따른 sum을 구하실 때는 제 2번째 풀이와 같이 슬라이싱을 사용하지 않는 방법을 찾아보시는 것을 추천드립니다. 예상되는 문제 2 new_list에 sum 들을 종합하고 계시다면 발생할 수 있는 문제입니다. list의 경우 중복을 허용하는 자료형이기 때문에 추후에 중복을 없애는 과정에서 시간이 많이 소모될 수 있습니다. 따라서 중복을 허용하지 않는 set 자료형을 사용하여 sum 들을 종합하는 게 좋다고 생각됩니다. list의 경우 if sum in list pass else list.append(sum)와 같은 방식으로 중복을 제거할 수 있으나 if sum in list 명령이 list 길이에 비례하는 Linear complexity의 명령이기 때문에 효율성이 좋지 않습니다. (list의 모든 요소를 하나씩 접근하여 sum과 같은 값이 있는지 비교하기 때문에 list 길이에 비례하는 Linear complexity를 갖게 됩니다) 반면 set은 값들을 hash화 하여 저장하기 때문에 if sum in set pass else set.add(sum)와 같은 명령이 constant complexity 로 작동할 수 있습니다. (사실 if sum in set과 같은 확인 작업도 필요 없이 set.add(sum)을 통해 자동으로 중복을 제거할 수 있습니다) 문제 1이 문제 2보다 시간 복잡도에 미치는 영향이 크기 때문에 이 부분 참고하셔서 문제 수정할 수 있으면 좋겠습니다.

    • @군하-l2y
      @군하-l2y Год назад

      @@Problem_Solution 와 친절한 답변 감사드립니다~ 두번째 풀이 디버깅 돌리면서 겨우 이해했어요. 선생님 말대로 슬라이싱하고 sum을 반복문 안에서 안돌리는게 좋겠네요

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

      모든 start지점과 모든 length에 해당하는 부분수열의 합을 찾아내는 접근법이라는 점에서 2번풀이와 군하님이 원래 하셨던 풀이가 비슷합니다. 차이점은 slicing대신 메모리에 부분의 합을 저장하는 방식을 사용했다는 점이 될 수 있겠습니다. 다음에 또 질문 생기시면 댓글로 남겨주세요!

  • @군하-l2y
    @군하-l2y Год назад

    저에겐 빛과 같은 채널입니다. 감사합니다 . 영상 소개글에 프로그래머스 링크도 같이 달아주시면 더 좋을거같습니다

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

      시청해 주셔서 감사합니다! 차후 올리는 문제들은 링크를 포함해서 올리도록 하겠습니다.

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

    하교길 후회없는 선택 😊

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

    정말 달콤해

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

      🍜차돌짬뽕 너무 맛있어요 ㅠㅠㅠ🍜

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

    🎉🎉🎉 저도 방금 풀었는데 업로드라니..! 항상 너무너무 잘 보고 있슴당!!!!!

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

      나이스 타이밍이네요! 탕구리님이 푸신 방법이랑 강의 풀이방법 비교해보면서 각각의 장단점 생각해보면 공부에 많은 도움이 될 것 같습니다!

  • @yeonsukim-d8m
    @yeonsukim-d8m Год назад

    스택 이론이랑 문제풀이랑 이해 갭이 크네요.. 덕분에 문제 이해했습니다 감사합니다!

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

      자료구조와 알고리즘을 같이 공부하시면 양쪽의 이해에 도움이 많이 됩니다! 저는 알고리즘을 책에서 설명된 자료구조가 아닌 다른 자료구조를 적용해 구현하려고 시도해보면서 왜 책에서 특정 자료구조를 썼는지 체감할 수 있었습니다. (다른 자료구조를 사용하면 코드가 복잡해지거나 알고리즘이 작동하지 않는 경우가 많았습니다.) 이론으로 이해가 잘되지 않으실 때는 용례를 찾아보면서 공부하는 방법도 좋습니다!

    • @yeonsukim-d8m
      @yeonsukim-d8m Год назад

      @@Problem_Solution 감사합니다♥

  • @이강철-j2t
    @이강철-j2t Год назад

    안녕하세요 이제 알고리즘을 공부하는 사람입니다. 혹시 알고리즘을 처음 접하기에 어려움이 있는데 혼자 독학으로 어덯게 해야할까영 .. 0단계는 할만한데 윗단계부터는 너무어렵네여 ㅠㅠ/ 아 강의는 너무 잘듣고있습니다!! 감사합니다!!

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

      강의가 도움이 되었다니 정말 기쁩니다. 알고리즘 공부를 시작하는 중이라면 다음 방법을 참고해보세요. 1. 내가 알고리즘을 공부할 때 사용할 언어의 기본 문법은 필수적으로 숙지해주세요. 언어의 사용법을 모르면서 알고리즘을 공부한다는 것은, 사칙연산을 할 줄 모르면서 수학 문제를 풀려고 하는 것과 같습니다. 기본 구현에서 막히게 되면 공부가 어려워지기 때문에 LV0 문제들을 풀면서 기본 문법을 숙지해 주세요! 2. 코드를 작성하기 전 순서도를 그려보면서 알고리즘의 논리적 흐름을 이해해보세요. 코드를 작성하다 보면 한줄 한줄에 집중하게 되어 알고리즘의 전체적인 흐름을 캐치하지 못할 수 있습니다. 순서도를 통해 전체적인 흐름을 잡으신 다음 구조에 맞는 코드를 채워 넣는 식으로 연습해보세요. (순서도 작성 -> 코드 작성 -> print를 통해 세부적인 오류 체크) 3. google 이미지 검색에서 gif를 통해 알고리즘 이해하기 저는 알고리즘 설명을 읽었을 때 이해가 되지 않으면 gif를 보면서 동작을 하나씩 확인하는 게 도움이 많이 됐습니다. 알고리즘 설명을 읽은 후 gif를 찾아보면서 내가 이해한 게 맞는지 확인하는 것도 공부에 도움이 될 것 같습니다. 저는 이런 방식으로 공부했던 기억이 있습니다. 그리고 영상 시청 방법에 있는 3단계 따라서 강의 들어보시면 도움이 많이 될 것 같습니다. 답변 적고 나서 보니 "교과서 위주로 공부했어요" 같은 뻔한 소리를 하는 것 같은 느낌이 드네요.. 이런 공부 방법에 관한 질문이나 문제에 관한 질문 모두 환영하고 있으니 공부하시다 막히는 부분들 편하게 질문해주세요!

    • @이강철-j2t
      @이강철-j2t Год назад

      @@Problem_Solution 혹시 따로 알고리즘 기초강의는 계획 없으신가영 강의 너무 잘 보고있데 알고리즘이 너무 어렵네영 ㅠ 입문하기가 힘드네용

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

      알고리즘 전체에 대한 강의는 시간상 어려울 것 같습니다. 하지만 커뮤니티에 어떤 알고리즘이 어려운지 작성해주시면 개별적 알고리즘에 대한 강의는 제작해 드릴 수 있습니다.

    • @이강철-j2t
      @이강철-j2t Год назад

      @@Problem_Solution 너무 감사드립니다! 사실 알고리즘 처음 입문자이며 또한 최근 코딩테스트를 준비하고 있습니다.. 혹시 중요하다고 생각하는 알고리즘이나 자료구조에 대해서 스택/큐를 시작으로 dfs/bfs까지가 목표입니다. 혹시 도움을 주시면 감사하겠습니다!.. 강의는 너무 잘 보고 있습니다..! 항상 감사드립니다!

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

    대박 ... 계정 3개 있는데 전부 구독 박고 갑니다. 앞으로도 좋은 코테영상 많이 올려주세요 홍보 많이 해드릴께요!! 감사합니다 :)

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

      감사합니다... 분발해서 꾸준히 업로드 할 수 있도록 하겠습니다!

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

    유익한 영상 감사합니다.

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

    def solution(clothes): # count number of choices # 같은 이름을 가진 의상은 존재하지 않습니다. fashion_dict = dict() for cloth, category in clothes: if category in fashion_dict: fashion_dict[category] += 1 else: fashion_dict[category] = 1 answer = 1 for category in fashion_dict.keys(): # choices are wearing_something + not_wearing answer *= fashion_dict[category] + 1 # going naked is not good # 스파이는 하루에 최소 한 개의 의상은 입습니다. return answer - 1

  • @곰잡이
    @곰잡이 Год назад

    감사함니다 ㅠㅠ 혼자 공부하는데 너무 어려웟어여

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

      조금 힘들더라도 영상 설명의 3-step 따라서 공부하시면 실력에 도움이 많이 될겁니다. (제가 공부했던 방법이거든요.) 질문이나 요청사항은 편하게 댓글로 남겨주세요!

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

    항상 잘 보고있습니다! 프로그래머스로 코딩테스트 공부중인데 막히는 문제는 텍스트로보면 잘 이해가 안되더라구요 말로 들으니 바로바로 이해가되네요 감사합니다.

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

      피드백 감사합니다! 이전에 올리던 "(Old) 프로그래머스 LV2" 플레이 리스트의 영상 구성보다 문제 분석이랑 설명에 조금 더 집중한 구성의 "(New) 프로그래머스 LV2" 를 제작하고 있습니다. (New) 프로그래머스 LV2 : ruclips.net/p/PLjWmbjpSjAMBGpQZo2JnMUDCJL-Ifdtml 코드를 작성하는 방법이 아니라 논리적 사고하는 방법을 강의하려고 노력하고 있습니다!

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

    def solution(arr1, arr2): # 0000 00 [[00] # 0000 x 00 = [00] # 0000 00 [00]] # 00 # R1,C1 x R2,C2 = R1,C2 # C1 == R2 라야 한다. R1, C1 = len(arr1), len(arr1[0]) R2, C2 = len(arr2), len(arr2[0]) """ # List Comprension을 사용한 풀이 answer = [[sum([arr1[ans_r][mulidx]*arr2[mulidx][ans_c] for mulidx in range(C1)]) for ans_c in range(C2)] for ans_r in range(R1)] """ """ # append를 사용한 풀이 answer = [] for ans_r in range(R1): line = [] for ans_c in range(C2): mul_val = 0 for mul_idx in range(C1): mul_val += arr1[ans_r][mul_idx] * arr2[mul_idx][ans_c] line.append(mul_val) answer.append(line) """ return answer

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

    재생목록으로 정리되어있어서 깔끔하네요 정주행하겠습니다

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

      감사합니다! 공부하시다 궁금한점 생기시면 편하게 물어봐 주세요!

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

    오늘도 유익한 영상 감사합니다👍

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

      푸딩님 열심히 공부하는 모습 보기 좋습니다! 이거 영상 하루 한개씩이라도 올리는게 은근 힘드네요 ㅎㅎ;;

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

    def is_valid(s): # 짝을 아직 찾지 못한 괄호들을 저장하는 stack # 나중에 저장된 괄호가 짝을 이뤄 소거되어야 # 이전에 저장된 괄호도 짝을 찾을 수 있기 때문에 # stack의 구조를 사용하고 있다. (LIFO) stack = [] for char in s: # 괄호가 짝을 이루고 있다면 소거시킨다. # if All True return True # if any False return False if stack and stack[-1] == '[' and char == ']': del stack[-1] elif stack and stack[-1] == '{' and char == '}': del stack[-1] elif stack and stack[-1] == '(' and char == ')': del stack[-1] # 짝을 찾지 못한 경우 stack에 저장한다. else: stack.append(char) # 짝을 찾지 못한 괄호들이 남아있다면 invalid 즉 False # 모든 괄호가 짝을 찾아 소거되었다면 valid 즉 True return stack == [] def solution(s): # 0 1 2 3 4 # a b c d e # 0 1 2 3 4 5 answer = 0 for x in range(len(s)): # left = s[:x] # right = s[x:] # rotated = right + left if is_valid(s[x:] + s[:x]): answer += 1 return answer

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

    너무잘보고있습니다

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

      감사합니다! 질문 있으시면 댓글로 편하게 남겨주세요!

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

    코딩 테스트 대비 공부 중인데 도움이 많이 되네요 감사합니다!

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

      영상이 도움이 되셨다니 정말 기쁩니다! 코딩 테스트 좋은 결과 있으시길 바랍니다!

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

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

    어떤 문제를 푸는건지 모르겠습니다 문제 출처가 없는 알고리즘 강의 형식인가요?

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

      현제 진행하고 있는 "Python3 정리"시리즈는 문제풀이가 아닌 문제풀이 하실 때 도움이 될 만한 문법, 라이브러리 사용법, 테크닉 등등 정리해서 올리는 시리즈 입니다. ( Python3 정리 플레이리스트 링크 : ruclips.net/p/PLjWmbjpSjAMAYmqJq55Ce3Yf5Riz8r8vI ) LV0, LV1 문제들 풀면서 정리가 필요하다고 생각했던 내용들로 구성되어있습니다. 다음주부터 프로그래머스 LV2영상 다시 올릴 계획이니 많은 시청 바랍니다!

  • @군하-l2y
    @군하-l2y Год назад

    첫번째 풀이방식이 dp인가요? dp말만 들었는데 어떤건지 잘 모르겠네요

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

      넵 첫번째 방법이 DP를 적용한 풀이입니다. 재귀와 DP에 대해 다음 영상에서 비교하고 있기 때문에 한번 들어보시는거 추천드립니다. ruclips.net/video/5aeevd43pqw/видео.html

    • @군하-l2y
      @군하-l2y Год назад

      @@Problem_Solution감사합니다

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

    이번 영상도 굉장히 유익하네요

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

      "Python3 정리" 시리즈로 내용정리 한번 한 다음 LV2강의 다시 올릴 계획입니다! LV2영상을 새롭게 찍을 생각에 기대가 됩니다! 👐👏

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

      @@Problem_Solution 🤷‍♂기대되네요

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

    이런 강의도 너무너무 좋습니다. 고마워잉

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

      탕구리님 꾸준히 공부하시는 모습 멋있습니다! 코딩테스트 전에 헷갈리는 부분들 정리하고 갈 수 있도록 새로 만들고 있는 시리즈 입니다. ( 시리즈 링크 : ruclips.net/p/PLjWmbjpSjAMAYmqJq55Ce3Yf5Riz8r8vI ) 이런게 헷갈린다 하는 부분들 말씀해주시면 영상 주제 선정에 도움이 많이 될 것 같습니다!