목록WHAT I LEARN (83)
Nonamed Develog
어떤 문제가 있었나?오늘의 알고리즘 코드카타 문제: [프로그래머스] Lv.1 기사단원의 무기 알고리즘 문제를 풀면서 처음으로 시간초과 오답을 경험했다. 최근 시간 복잡도를 배워서 그런지 연산이 비효율적이라 판단했다. 아래 코드는 number를 range 함수로 i로 반복하고, i의 약수의 개수를 세는 코드이다.def solution(number, limit, power): attacks = [] for i in range(1, number+1): count = 0 for j in range(1, i+1): if i % j == 0: count += 1 attacks.append(count) for i i..
1. Data Manipulation & Analysis Pandas & NumpyPandasDataFrames: 벡터화 연산, 직관적인 내장 메서드로 데이터를 효율적이게 정렬, 필터링, 그룹, 집계할 수 있다.Data Cleaning: 누락된 값, 불규칙성을 해결하여 AI 모델에 양질의 데이터를 공급할 수 있다.Data Filtering: 조건을 적용하고 데이터 세트의 범위를 쉽게 좁힐 수 있다.Merging and Joining: 다양한 데이터 세트를 원활하게 결합하여 범위를 넓힐 수 있다.NumpyArrays: 효율적인 배열 연산이 뛰어나며, 속도와 기능 면에서 기존 파이썬 리스트보다 우수하다.Vectorization:explicit loop(for/while)가 필요 없이 전체 배열에 동시 연산을..
새로 알게 된 점은 무엇인가?계층형 자료구조의 특징Originated from one source.One node is propagated into several nodes.*propagate: to produce a new plant using a parent plant.No cycle path.트리 Tree비선형 구조. 원소 간 계층 관계를 가지며, 상위 원소에서 하위 원소로 내려가면서 확장되는 "나무 모양" 구조There is a special designated node call the root.Every pairs of connected nodes are in parent-child relationship.There is no cycle in the nodes.Reculsively defined..
FACTS(사실, 객관): 이번 일주일 동안 있었던 일, 내가 한 일코드카타, 파이썬 복습이라 쓰고 새롭게 학습, 자료구조에 대한 이해(복습 필요), 알고리즘(좌절), CS 기초 정리FEELING(느낌, 주관): 나의 감정, 반응, 느낌코드카타 풀기 ➡️ 강의 수강 또는 과제 ➡️ 점심 ➡️ CS 특강 ➡️ 스쿼드 ➡️ 저녁 ➡️ 복습 후 TIL 정리지난 일주일의 하루 일과를 한 줄 요약하면 위와 같다. 24시간이 모자란 지경... 시간을 효율적으로 쓰고 있는지 의문이 든 일주일이었다. 자료구조 알고리즘을 집중적으로 공부하고 싶었지만 시간이 도저히 나질 않았다. TIL까지 다 쓰면 10시가 훌쩍 지나있으니😓 알고리즘 주차가 끝났지만 스쿼드에서 기초 알고리즘 문제를 푸는 게 쉽지 않았다. 절망적이었다.변..
새로 알게 된 점은 무엇인가?프로그래밍 기본컴파일러(compiler): 고급 언어로 작성된 소스 코드를 저급 언어(기계어)로 번역하는 프로그램- 코드 실행 전, 컴파일 타임에 소스 코드 전체를 한 번에 기계어로 변환 후 실행한다.- 실행 파일을 생성한다.- 컴파일 단계와 실행 단계가 분리되어 있다.- 컴파일은 한번만 수행한다.- 컴파일과 실행단계가 분리되어 있어, 실행 시에는 실행만 하면 되므로 코드 실행 속도가 빠르다.- 런타임: 컴파일 과정을 마친 컴퓨터 프로그램이 실행되고 있는 환경 또는 동작 시간이다.- C, C++, C#, JAVA인터프리터(interpreter): 프로그래밍 언어의 소스 코드를 바로 실행하는 컴퓨터 프로그램- 코드가 실행 단계인 런타임에 코드 한 줄씩 중간 코드인 바이트코드로 ..
어떤 문제가 있었나?스쿼드 세션에서 첫 알고리즘 문제를 풀지 못했다. 행렬 덧셈 문제였는데 빨리 풀어야 한다는 생각에 슈도 코드 작성도 하지 않고 무작정 vscode부터 실행했고, 행렬을 직접 구현하려니 너무 막막했다. 알고리즘 강의를 많이 못 들었어도 코드카타 열심히 풀고 개념 정리도 했는데 안 풀리니 조금은 좌절했다.무엇을 시도했나?세션에서 풀이 내용을 집중해서 보고 스스로 다시 풀어봐야겠단 생각이 들었다. 풀이를 보고 다시 푸는 것임에도 불구하고 풀이가 어려웠다. 행렬에 대해서 다시 공부하고, 문제를 정확히 이해한 다음, 슈도 코드를 작성해 봤다. 잘 안 써본 map, join, spit()을 써보려고 노력해 봤다.어떻게 해결됐는가?세션을 통해서 이미 로직을 알고 있는 상태라 천천히 코드를 작성해 ..
어떤 문제가 있었나?자료구조 알고리즘 강의가 생각보다 어려워 스쿼드 세션을 잘 보내면 어렵지 않겠다는 생각은 완전히 오산이었다. 파이썬 세션도 내가 어느정도 알고 있었기에 따라갈 수 있었다는 것을 망각했다. 용어를 모르니 이해하지 못한 부분이 있었지만 초반이라 전반적으로 세션을 따라갈 수 있었다. 하지만 앞으로가 걱정이 되었다.무엇을 시도했나?세션에서 알고리즘 학습을 위한 접근법을 제시해 주셨는데, 기존 공부했던 방식인 Step by step이 알고리즘에선 효율적인 학습법이 아닐 수도 있다고 하셨다. 전체적으로 여러번 보는 것이 중요하고, 몰라도 한 번 훑는게 좋다고 이해했다. 그동안 Stack과 Queue 구현이 되지 않아 강의 수강이 멈춰 있었는데, 일단 무지성으로 강의 수강을 진행했다. 또한 추천하..
새로 알게 된 점은 무엇인가?객체 지향 프로그래밍의 4가지 특징추상화상속다형성캡슐화아래에서 자세하게 알아보자.1. 추상화: 객체의 공통적인 속성과 기능을 추출하여 정의하는 것이다.class Person: def run(self): print("Person is running") def walk(self): print("Person is walking")가장 본질적이고 공통적인 부분만을 추출하여 표현할 수 있다.달리기, 걷기는 각각을 사람이 하는 행위이기 때문에 Person이라 정의할 수 있다.함수, 변수 클래스 모두 추상화이다. 2. 상속두 클래스 사이 부모-자식 관계를 정립하는 것이다.클래스는 상속이 가능하다. cf) 모든 파이썬 클래스는 Object를 상속..