재귀가 은근 어렵다. 단순히 출력하는 문제라서 쉽게 봤는데 답이 나올 듯 안나올 듯 스마일과 몇시간을 싸웠다.
for문과 if문을 적절히 이용하면 하나의 함수 안에서 재귀를 이용해 문제를 풀 수 있을 것 같은데, 숫자를 늘리는 것과 줄이는 것을 어떻게 동시에 처리해야할지를 잘 모르겠다.
오늘이 마무리 될 때 쯤엔 내 얼굴에 스마일이 띄워져 있기를...
21.02.09
[x] 프로젝트 5-2
[x] 프로젝트 5-3 : 문제 선정 및 분석
[ ] 프로젝트 5-3 : 로직 및 의사코드 작성
알게된 것
리스트 간 차집합
-리스트 간 합집합은 '+'연산자로 가능하지만, 차집합(공집합을 제외한 여집합)은 '-' 연산이 불가함
TypeError: unsupported operand type(s) for -: 'list' and 'list'
해결책 : 리스트컴프리헨션으로 리스트 안의 원소를 비교하여 차집합 리스트를 생성
a_sub_b = [x for x in a if x not in b]
느낀 것
코드를 보고 이해를 해서 말로 설명하는 것은 가능하지만 정제된 언어로 표현하는 점이 어렵게 느껴진다. 프로젝트에선 시간을 효율적으로 배분하는 것도 중요하니, 일단 말로 설명하는 것처럼 작성해뒀다가 후에 다시 다듬어야할 것 같다.
(이런 식으로 1번 문제..2번 문제.. 계속 적당히 넘기는 중인데 주말 정도에 다시 1번부터 점검하는 시간을 마련해야겠다.)
21.02.10
[ ] 프로젝트 5-3 : 로직 및 의사코드 작성
[x] 프로젝트 5-3 : 프로그래밍(코드 작성)_진행중
알게된 것
코드(변수명) 작성 시 내장함수/특수용어 조심하기! 'path'는 변수명으로 사용하지 않기-> int로 인식
더 해볼 것
탐색 순서가 아니라 경로를 표시해줄 수 있는지 방법 찾아보기
느낀 것
로직을 설계하는게 다소 부담이 되어서 일단 코드부터 작성했다.
경로가 있는지 없는지 판별하는 것이 목적인데 탐색 순서에 집중하다가 늦게나마 잘못하고 있다는 것을 깨달았다.
내가 사용하는 방법이 효율적인지, 문제의 의도와 맞는지는 조금 더 생각이 필요할 것 같다.
프로젝트 마무리 즈음에는 "왜 이 알고리즘을 사용했나요?"라는 질문에 답할 수 있도록..마무리까지 열심히 해보자.
(지금은 뭐가 맞는지 몰라서 배운걸로 이것 저것 시도해보고 있는 중)
21.02.15
[x] 프로젝트 5-3 : 로직 및 의사코드 작성 및 프로그래밍(테스트)_진행중
의도치 않은 에러 발생
BFS와 DFS 결과가 다르게 출력되었다. 원래 맞는 출력문구는 '2에서 8까지 경로가 없습니다'이다.
코랩에서 함수를 각각 다른 셀에 실행하고 테스트 시에는 메인셀만 실행하다보니
변수가 초기화되지 않아서 위와 같은 에러?버그?가 발생하는 것 같다.
그래프와 변수를 초기화하는 부분을 메인 셀로 옮기니 해결되었다.
느낀 것
코랩 노트북으로 작성하다보니 지역/전역변수의 영역이 조금 헷갈리는 것 같다. 프로젝트가 끝나면 visual studio에서 .py파일로 작성해봐야겠다.
21.02.16
[x] 프로젝트 5-3 : 작성한 프로그램 테스트 및 리뷰
[x] 발표 영상 촬영 및 제출
느낀 것
설 연휴에 틈틈이 프로젝트를 진행하려고 했는데 기상악화로 발이 묶여서 며칠을 날렸다.
오늘 뒤늦게 1,2번 문제가 완료 전이라는 사실을 알아차리고 덤벙대다가 결국 영상을 기한보다 늦게 제출했다.
도전해보고 싶은 요소들이 남아있었지만 해결하지 못해서 아쉬움이 남는다.
한편으로는 간단한 문제를 골랐기 때문에 발표를 무사히 마칠 수 있었다는 생각도 든다.
도전요소들은 리뷰기간에 찾아서 보완해봐야겠다.
동기들의 발표영상과 피드백을 보며 또 많은 것을 배웠다. 그리고 상세한 피드백에 조금 감동받았다.
특히 같은 문제에 대한 다른 시각과 새로운 접근법을 보면서 나도 시야를 넓힐 수 있었다.
[ section5 프로젝트 주간 ]
21.02.08
어려웠던 것
21.02.09
알게된 것
느낀 것
21.02.10
알게된 것
'path'는 변수명으로 사용하지 않기-> int로 인식
더 해볼 것
느낀 것
로직을 설계하는게 다소 부담이 되어서 일단 코드부터 작성했다. 경로가 있는지 없는지 판별하는 것이 목적인데 탐색 순서에 집중하다가 늦게나마 잘못하고 있다는 것을 깨달았다.
내가 사용하는 방법이 효율적인지, 문제의 의도와 맞는지는 조금 더 생각이 필요할 것 같다. 프로젝트 마무리 즈음에는 "왜 이 알고리즘을 사용했나요?"라는 질문에 답할 수 있도록..마무리까지 열심히 해보자. (지금은 뭐가 맞는지 몰라서 배운걸로 이것 저것 시도해보고 있는 중)
21.02.15
의도치 않은 에러 발생
느낀 것
21.02.16
느낀 것