목록WHAT I LEARN (82)
Nonamed Develog
FACTS(사실, 객관): 이번 일주일 동안 있었던 일, 내가 한 일코드카타, 알고리즘 강의, 파이썬 세션의 반복. 뇌의 한계를 재대로 느끼는 중...FEELING(느낌, 주관): 나의 감정, 반응, 느낌파이썬을 공부하면서 코드카타 문제도 풀 수 있게 되고 과제도 할 수 있게되니 나름 할만하다고 생각했었다. 하지만 내가 아는 것은 빙산의 일각이었고, 아직 공부해야할게 산더미였다. 자료 구조와 알고리즘이 그 정점이었다. 강의 난이도가 갑자기 올라서 따라갈 수 없었고, 스택, 큐 등을 구현하는 것을 강조했는데 할 수가 없었다.FINDING(배운 것): 그 상황으로부터 내가 배운 것, 얻은 것스쿼드 세션을 통해서 파이썬의 애매하고 알고 있는 부분이나 몰랐던 부분을 공부할 수 있었다. 복습하고 블로그에 정리하니..
새로 알게 된 점은 무엇인가?피보나치 수 구하기# 1. 코드 작성 전 슈도 코드로 구상def fibo(n): # 2. 골격 코드 작성 if n == 1: # 4. 종료 조건 작성 return 1 # 5. 종료 조건은 명확하지 않은 경우가 있으므로 elif n == 2: # 재귀 논리를 생각하는 연습하기 return 1 else: return fibo(n-1) + fibo(n-2) # 3. 구상한 재귀 논리 작성 n = int(input())print(fibo(n)) 멤버십 연산자(in, not in): iterable(반복가능한) 시퀀스에서 True/False 판별value(확인할 값) in sequence(확인할 시퀀스): 특정 ..
오늘 세션에서도 파이썬 문법을 다뤘는데 정확히 몰랐던 부분에 대해서 정리하고자 한다. 새로 알게 된 점은 무엇인가?모듈과 패키지- 모듈: 프로그램에서 특정 기능을 하는 파이썬 파일(.py)import moduleimport my_math # my_math 모듈을 가지고 와서my_math.add # 모듈.메소드 이용from my_math import add # 모듈과 메소드 하나를 가져옴(가져온 메소드만 이용가능)from my_math import * # 모듈과 메소드 전체를 가져옴- 패키지: 모듈을 모아두고 관리하는 상위 폴더 또는 디렉토리from package import modulefrom special.my_math import addfrom special.my_math import *from..
오늘은 어제에 이어서 스쿼드 세션에서 다룬 파이썬 문법을 정리하고자 한다. 잘 몰라서 외면했었던 내용이라 잘 정리하고 넘어가기 좋은 기회라 생각했다.새로 알게 된 점은 무엇인가?함수- 전역변수(Global variable): Global scope에 위치한 변수는 바뀌지 않는다면 따로 지정할 필요가 없지만, 바뀌게 된다면 local scope에서도 명확하게 지정해야 한다.cf) nonlocal: 지역변수가 아님을 선언. 함수 바로 한 단계 바깥쪽에 위치한 변수를 명시할 수 있다.a = 0b = 1def func01(): global a # a += 10처럼 변경되므로 global a를 명시해 줌 a += 10 def func01(): print(a)''' 하지만 현직에서 global은 사용하..
어떤 문제가 있었나?요즘 스쿼드 세션에서 파이썬 문법을 배우고 있다. 이미 배웠다고 대충 들을 내용이 아니었다. 그동안 내 파이썬 학습은 빈틈 투성이였다. 세션 중 나오는 퀴즈의 절반은 틀렸거나 답을 내놓지 못하였다. 이번 세션에서 많은 빈틈을 발견했고 복습을 통해서 채워야겠다고 생각했다. 무엇을 시도했나?세션 내용을 필기한 후에 복습을 했다. 대부분 '알고 있다'고 생각한 문법이지만, 역시나 '재대로' 알지 못한다면 모르는 것이었다. 어떻게 해결됐는가?조금이나마 재대로 이해하기 위해 복습한 내용을 TIL에 기록하고 궁금한 부분은 튜터님께 질문하여 채울 예정이다.새로 알게 된 점은 무엇인가?이런게 있구나~ 하고 넘어간 다음 한번도 쓰지 않은 문법들을 정리해보자 삼항연산자: 꼭 필요한 연산자는 아니지만 ..
어떤 문제가 있었나?알고리즘 문제를 풀다 보면 딜레마가 생긴다. 너무 어려운 문제는 정답코드를 확인하곤 하는데, 강의에서 언급이 없거나 가볍게 넘어간 문법을 사용한 풀이라 코드를 읽는데 어려움이 있었다. 또는 이미 존재하는 라이브러리를 사용하여 쉽게 해결하는 코드도 있었다.정답을 맞추는 것도 중요하지만 풀이하는 과정이 중요하다고 생각하기에 최대한 배운 것을 위주로 문제 풀이를 했지만, 많은 사람들이 강의에서 언급하지 않거나 가볍게 언급한 문법을 사용한 풀이를 보면 내 풀이를 시간 복잡도를 고려하지 않은 풀이가 되었다. 그렇다면 새로운 라이브러리, 문법을 공부하여 적극 사용한다면 공부가 될까? 아직 답을 내리진 못했었다. 무엇을 시도했나?오늘 알고리즘 특강, 강의 그리고 스쿼드 모두 시공간 복잡도에 대해 ..
오늘 TIL은 서식을 사용하지 않고 컴퓨팅 사고(Computational Thinking)와 슈도 코드(pseudo code)에 대해서 정리하려한다. 알고리즘을 공부하면서 이 두가지를 정리하고 넘어가야 앞으로 도움이 될거라 생각이 들었다. 아래 링크는 구글링을 통해 찾은 컴퓨팅 사고에 대한 블로그 포스트다. 내용이 좋아 아티클 스터디 재료로 삼았다.https://velog.io/@teo/computational-thinking 컴퓨팅 사고(Computational Thinking)도대체 컴퓨팅사고라는게 무엇일까? 파이썬을 공부하면서 느낀점은 '언어'를 배우는 것과 비슷하다고 생각했다. 영어 말하기를 잘하기 위해선 물론 단어와 문법을 알면 좋지만. 영어를 사용하는 환경에 자주 노출되어 자연스럽게 언어로 인..
어떤 문제가 있었나?오늘은 그동안 과제로 인해 밀린 코드카타를 풀어봤다. 최대공약수와 최소공배수, 3진법 문제가 특히 어려웠는데, 기초적인 수학 공부가 필요하다고 느꼈다. 물론 이론은 다시 보니 어렵지 않게 이해했지만 코드로 바꾸는 것은 쉽지 않았다. 컴퓨터적 사고를 잘할 수 있게 훈련을 해야겠다.무엇을 시도했나?튜터 님의 조언이 생각나 무작정 종이를 가져와 문제를 풀어봤다. 특히 3진법 문제는 실제로 적어보니 머리속으로 정리할 때보다 어떻게 코드를 작성해야 하는지 아이디어가 떠올랐다. 예를 들어 10진법을 3진법으로 바꾸려면 3으로 계속 나눠서 더 이상 나눠지지 않을 때 몫과 나머지를 나열할 수 있다. 하지만 한번 더 나눠서 몫을 0으로 만들면 나머지로만 나열하여 3진법 수를 알아낼 수 있었다. 즉, ..