728x90

분류 전체보기 347

11. 16 알고리즘 TIME ATTACK 풀이/ JAVA 기초 강좌

1. 알고리즘 타임어택 풀이 풀이 후 QnA 시간: 코테 시 제한사항 필수 확인 숫자 단위 표현 : _ ex) 300_000 = 300,000 -> 가독성 목적 코드 작성: 프로그램에서 먼저 하고 코테 사이트에 옮기는 센스 long longType = Integer.MAX_VALUE + 1L; // 형변환 *파이썬보다 자바의 실수, 정수 범위가 작다 자바에서는 데이터의 손실이 발생하지 않거나, 데이터의 손실이 최소화되는 방향으로 묵시적 타입변환을 진행 자동 형변환 : 데이터 크기가 더 큰 데이터 타입으로 (JAVA) 0.00 ~ 자동 더블인식/ 숫자는 자동 float인식 while은 끝을 알지 못할 때 쓴다(for는 범위를 알고 있을때) String은 왜 배열처럼 쓸수 있는지?? for문, 슬라이싱, 인..

11. 15 JAVA 기초 강의/ 알고리즘 강의 + 그림으로 배우는 알고리즘

1. JAVA 기초 강의 인터페이스, 상속을 활용한 클래스 구현 public class Main { public static void main(String[] args) { Human grandParent = new GrandParent("할아버지", 70); Human parent = new Parent("엄마", 50); Human child = new Child("나", 20); Human[] humans = {grandParent, parent, child}; for (Human human : humans) { System.out.println(human.name + ", 나이:" + human.age + ", 속도" + human.speed + ", 장소" + human.getLocation()..

문제해결 연습(1): 알고리즘과 친해지기 w.파이썬

이중 반복문을 활용한 최대값 찾기 함수 def find_max_num(array): for num in array: #배열의 숫자를 하나 하나 꺼내서 num에 할당 후 for compare_num in array: #이중 반복문, 배열에서 compare_num에 할당 if num < compare_num: break #아직 작은 수일 경우 반복문을 끝내고 다음 배열을 num에 할당한다 else: return num #for 반복문이 완성될 동안 break가 일어나지 않았다면 result = find_max_num(input) print(result) 매우 간단한 함수지만, 지금 완전히 이해한 기분과 함께.. 성취감을 느껴 기록합니다. 소감: 반복하다 보니 일주일이라는 짧은 시간에도 확실히 익숙해진 느낌이..

11. 14 알고리즘 강의/ JAVA 기초 강의/ 그림으로 배우는 알고리즘/ Leetcode

1. 알고리즘 강의 Dynamic Programming(동적 계획법) 1) 피보나치 수열: 첫째, 둘째항이 1이며 그 뒤의 모든 항은 앞의 두 수의 합 표시되는 수열 *피보나치 수열 구현 : 재귀함수 input = 20 def fibo_recursion(n): if n == 1 or n == 2: return 1 return fibo_recursion(n - 1) + fibo_recursion(n - 2) print(fibo_recursion(input)) # 6765 #내가 쓰기엔 매우 간단해 보이지만, 동적 계획법: 복잡한 문제를 간단한 여러 문제로 나누어 푸는 것 조건 1. 반복되는 형태로 문제가 계속해서 파생되는 게 있다. 조건 2. 메모이제이션을 위한 메모가 필요하다 input = 100 # m..

11.14 알고리즘 강의: 그래프/ DFS && BFS

1. 그래프 : 연결되어 있는 정점과 정점 간의 관계를 표현할 수 있는 자료구조 노드(Node): 연결 관계를 가진 각 데이터를 의미한다. 정점(Vertex)이라고도 한다. 간선(Edge): 노드 간의 관계를 표시한 선. 인접 노드(Adjacent Node): 간선으로 직접 연결된 노드(또는 정점) 종류 - 유 방향 그래프: 일방통행 그래프, 각 간선은 한 방향으로만 진행할 수 있다 - 무 방향 그래프: 방향이 없는 그래프 표현 방법 ~ 여기서도 배열/링크드 리스트 인접 행렬(Adjacency Matrix): 2차원 배열로 그래프의 연결관계를 표현 인접 리스트(Adjacency List): 링크드 리스트로 그래프의 연결관계를 표현 *인접 행렬은 시간이 더 효율적이다 and 인접 리스트는 공간이 더 효율적..

11. 07 ~ 11. 11/ 2주 차 WIL

이번 주는 본격적으로 알고리즘에 대해 학습하는 시간을 가지는 일주일이었다. 기존에 수강했던 자료구조 개념을 더욱 깊게 이해할 수 있게 되었다. 알고리즘이라는 아직은 신비로운 문제해결 체제에 대해 "레시피"라는 개념으로 접근할 수 있는 점은 매우 긍정적이다. FACTS - 알고리즘의 기초 강의 중 기본 개념에 대한 학습 시간복잡도 공간복잡도 접근표기법 어레이와 링크드 리스트 클래스 이진탐색 재귀함수 정렬 스택, 큐 해쉬 트리, 힙 각 유형당 20문제정도 풀 수 있다면 좋아요 정수의 최소값, 최대값 곱하기 또는 더하기 반복되지 않는 문자 문자열에서 문자 최빈값 구하기 문자열 뒤집기 링크드 리스트 구현 - JAVA 기초 강의 - 파이썬 기초 강의 완강 FEELINGS -아직 너무 부족함을 많이 느낀다. 그저 ..

11. 11 CS 특강/ 알고리즘 강의

1. CS 특강(CPU): 강창민 튜터님 CS 기초지식 확보목적 CPU는 4가지의 기능이 있다 Fetch/ Decode/ Execute/ Writeback 1) 왜 싱글코어가 아닌 멀티 코어를 사용하는지? 2) CPU 구조, 구성원 3) CPU와 프로그래머 간 통신 방법 4) 명령어 수행방법 **OS/ DB/ 네트워크 필수학습, 컴파일러/프로그래밍언어 보강 2.알고리즘 강의 트리/힙 트리 : 비선형 구조 ( vs 큐, 스택 ) Node: 트리에서 데이터를 저장하는 기본 요소 Root Node: 트리 맨 위에 있는 노드 Level: 최상위 노드를 Level 0으로 하였을 때, 하위 Branch로 연결된 노드의 깊이를 나타냄 Parent Node: 어떤 노드의 상위 레벨에 연결된 노드 Child Node: ..

11.10 알고리즘 강의: 링크드 리스트 구현(2) 및 재귀 함수

링크드 리스트 구현 링크드 리스트 원소 찾기 및 삽입/삭제 class Node: def __init__(self, data): self.data = data self.next = None class LinkedList: def __init__(self, value): self.head = Node(value) def append(self, value): cur = self.head while cur.next is not None: cur = cur.next cur.next = Node(value) def print_all(self): cur = self.head while cur is not None: print(cur.data) cur = cur.next def get_node(self, index):..

11. 10 JAVA 기초 강의/ 알고리즘 강의/ 알고리즘 특강

1.JAVA 기초 강좌 클래스/ 인스턴스/ 메소드 복습 *각 클래스에서 생성된 인스턴스는 생성된 후에는 각자의 개별 속성을 가지고 그 자체로 변화하게 된다 생성자 복습 *연산자 new가 인스턴스를 생성하는 것이지, 생성자가 인스턴스를 생성하는 것이 아니다. 인스턴스가 생성되며 (초기화 메소드인 생성자가) 호출되는 것이다. **인텔리제이(윈)Alt + Insert/ (맥)Command + N : 생성마법사 class Phone { String model; String color; int price; Phone(String model, String color, int price) { this.model = model; // 이 객체에 있는 model이라는 변수에, paremeter로 받은 model을 할당 ..

11. 09 파이썬 기초 강좌/ 알고리즘 강의/ 알고리즘 특강/ JAVA 정석 + 기초

1. 파이썬 기초 강좌 완강 튜플: 소괄호 사용, 불변성을 가진다, 순서를 가지므로 인덱싱 사용 가능하다(리스트와 마찬가지로) 집합(set) set(리스트) = 집합 -> 중복이 제거된다. 교집합: 집1 & 집2 합집합: 집1 | 집2 차집합: 집1 - 집2 *집합계산은 필수로 set이후! f-string: (파이썬 3.6 이상) 문자열을 더 쉽게 formatting하기 위함 -> 문자열 포맷은 왜 필요할까?:특정 값을 특정 위치에 특정하기 위해 for s in scores: name = s['name'] score = str(s['score']) print(f'{name}은 {score}점입니다') 예외처리(try - except): 중간에 에러가 나도 멈추지 말고 계속 진행하기 위해 *하지만 이렇게 ..

728x90