목록공부 (25)
dev_eun
programmers.co.kr/learn/courses/30/lessons/49189?language=python3 코딩테스트 연습 - 가장 먼 노드 6 [[3, 6], [4, 3], [3, 2], [1, 3], [1, 2], [2, 4], [5, 2]] 3 programmers.co.kr from collections import defaultdict, deque def bfs(depth, node, graph, visited, distance): visited[node] = True queue = deque([node]) distance[node] = 1 while queue: v = queue.popleft() for i in graph[v]: if not visited[i]: visited[i]..
programmers.co.kr/learn/courses/30/lessons/43165?language=python3 코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+ programmers.co.kr def dfs(index, current_num, numbers, answer, target, size): if index == size-1: if target == current_num: answer += 1 return answer answer = dfs(index+1, current_nu..
programmers.co.kr/learn/courses/30/lessons/42586?language=python3 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr import math def solution(progresses, speeds): size = len(progresses) days = [0] * size answer = [] max_day = 0 for i in range(size): days[i] = math.ceil((100 - progresses[i]) / speeds[i]) if..
용어 try : 예외가 발생할 수 있는 곳 throw : 예외 발생 catch : 예외 처리 스택 풀기 : 스택 메모리에 불필요한 데이터가 쌓이지 않게 예외 발생하기 전으로 돌아감 try, catch, throw 예외를 if-else문으로 처리하는 것보다 구조적으로 간결 try{ // 에러가 발생할 수 있는 코드 // 흐름이 한 눈에 보임 if(error 발생) throw errorcode; ... } catch(int e){ 예외 처리 } catch 다중화 예외 상황을 상황에 따라 구별하여 사용할수 있음 try{ ... } catch(int eNum){ } catch(char eCh){ ... // 이중 가능 try { ... } catch(...) { ... } } 예외 클래스 사용자화 예외 클래스 ..
용어 클래스 템플릿 클래스 템플릿 : 클래스를 찍어내는 모양자 선언 template class 클래스이름 { } 함수 템플릿처럼 비슷하게 사용 멤버 선언 및 정의 template 클래스이름::멤버함수이름() { } ### 템플릿 매개 변수 * 선언 ```c++ template template ``` * 사용 ```c++ CMyArray arr; ``` * * * ## 템플릿 특수화 ### 함수 템플릿 특수화 ```c++ template T Add(T a, T b) { return a + b; } template char* Add(char* pszLeft, char* pszRight) { ... } 매개변수가 모두 char*이면 두 번째 함수로 대체 클래스 템플릿 특수화 template class C..
[Chapter 8] 수평적 관계와 집합 관계 용어 friend 선언 friend 예약어 사용 friend class 클래스이름; friend 함수원형선언; 접근 제어 지시자의 영향 X 응집성을 위해서 존재friend 함수 class CMyData{ ... // 전역 함수를 friend로 선언 friend void PrintData(const CMyData& a); } void PrintData(const CMyData& a){ cout
용어 virtual : 가상 함수 예약어 가상함수 : virtual 예약을 앞에 붙여 선언한 메소드 추상자료형 : 상위 크래스로 하위 파생 클래스를 참조할 때의 상위 클래스 형식 vtable : 가상 함수 테이블, 함수 포인터 배열 순수 가상 함수 : 선언은 지금 해두지만 정의는 미래에 하도록 미뤄둔 함수 순수 가상 클래스 : 순수 가상 함수를 멤버로 가진 클래스 가상 함수 virtual 예약어를 앞에 붙여서 선언한 메소드 virtual 반환형식 메소드이름 virtual void PrintData(); 파생 형식에서 메소드를 재정의하면 과거의 정의가 완전히 무시된다. 미래 의 함수를 호출하는 것..! 참조 형식이 무엇이든 실 형식의 메소드를 호출한다. 일반 메소드의 경우 실형식은 중요하지 않고 참조 형식..
[Chapter 6] 상속 기본 용어 상속 : 객체 단위 코드를 재사용하는 방법 재정의 : 기존의 선언 및 정의된 코드를 유지하면서 새롭게 바꾸는 방법 메소드 재정의 : 클래스에 있는 메소드를 자유롭게 재정의 상속 객체 단위 코드를 재사용하는 방법 상속 받는 클래스와 상속하는 클래스 사이의 관계를 고려해 프로그램 작성 기본 형식 class 파생클래스이름 : 접근제어지시자 부모클래스이름 public 접근 제어 지시자를 통한 상속 파생 클래스 인스턴스가 생성되면 기본 클래스의 생성자 호출 파생 클래스는 private 접근 제어 지시자로 선언된 멤버를 제외한 기본 클래스의 멤버에 접근 가능 식별자 검새 순서에 근거 사용자 코드에서 파생 클래스의 인스턴스를 통해 기본 클래스 메소드 호출 가능 메소드 재정의(Ov..