목록전체 글 (226)
컴퓨터공학 💻 도서관📚
C언어에서는 파이썬의 len 처럼 배열의 길이를 자동으로 알아내는 방법이 없다. 그래서 이런 방식으로 C언어에서 배열의 길이를 알아낼 수 있다. int numbers[] = {1, 2, 3, 4, 5};int length = sizeof(numbers) / sizeof(numbers[0]); // 이렇게!!! #include int main() { int numbers[] = {1, 2, 3, 4, 5}; int length = sizeof(numbers) / sizeof(numbers[0]); // 이렇게!!! for (int i = 0; i

Student studentKim = new Student(); //참조변수 Student 객체studentKim.studentId = 10; // 인스턴스 변수 studentKim : 참조변수 --> 스택 메모리 : 메서드( main함수 or 기타 메서드) 안에서 선언된 지역 변수이기 때문이다. new Student() : 인스턴스 --> 힙 메모리 studentKim.studentId : 인스턴스 변수 --> 힙 메모리
더 깊이 더 깊이 들어가서 작은 디테일에 집중하기일을 쪼개서 하기-->그래서 빠르게 시작하기 (일을 계속 작게, 더 작게 쪼개기)자기 자신에게 하는 투자가 가장 좋은 투자이다연습이 완벽을 만든다. freecodecamp 영상에 나오는 코드를 계속 보기 , 힐링 + 연습(성장) , 자기 인생 훈수에 집중하는 사람 되기미니 프로젝트 : 식료품 관리 서비스 / 논문 사이트 스크랩, 팔로잉 서비스 / 가치투자 관리 서비스모든 것은 끝이 있기에 소중한 법 / 7일 중 4~5일은 코딩하고 2~3일은 다른 것도 하기* 알고리즘 백엔드(복습) AI 개인 프로젝트: Coding 훈련 세션 연구하기 , 주식 투자 관리 서비스 , 머글마법사 * 가치투자 : 가..

코드의 변수나 함수들이 메모리에 올라가게 되면 크게 두 가지 영역으로 나뉘는데1. Code 영역과 2. Data영역(상수 영역, 스태틱 영역) 이다. Code영역에는 프로그램의 함수, 메서드들이 들어가게 된다. 함수에 구현되어 있는 기능, instruction(명령어)들은 인스턴스마다 다르지 않다인스턴스마다 다른 것은 변수이다 (변수의 종류, 변수의 값)변수는 지역변수인 경우 stack 메모리에, 인스턴스 변수인 경우 heap 메모리에 잡힌다. 함수의 이름은 일종의 주소이다.그래서 함수 이름은 원래 같으면 안 되는데, 왜 오버로딩이 가능하냐면함수 이름에 더미 파라미터(매개변수)를 좀 붙여서 함수 이름을 조금씩 바꾼다.사실은 같은 이름의 함수는 없다 함수가 사용하는 메모리 영역..

오버라이딩 되었다는 것은 해당 메서드가 상위클래스와 하위클래스에 모두 있다는 뜻이다. 생성자 이름이 같고 매개변수가 서로 다른 여러 종류의 생성자 : 생성자 오버로딩 ( 과부화 ) * 하위 클래스에서 메서드 재정의 하기오버라이딩(overriding) : 상위 클래스에 정의된 메서드의 구현 내용이 하위 클래스에서 구현할 내용과 맞지 않는 경우 덮어쓰다 하위 클래스에서 동일한 이름의 메서드를 재정의 할 수 있음 VIPCustomer 클래스의 calcPrice()는 Customer과는 다르게 동작해야 하므로 재정의 하여 구현해야 함 * VIPCustomer 클래스@Override // 애노테이션public int calcPr..

어떻게 하위 클래스만 생성했는데도 상위 클래스의 멤버 변수나 메서드를 다 호출해서 쓸 수 있을까? * 하위 클래스가 생성 되는 과정 하위 클래스가 생성이 될 때 상위 클래스가 먼저 생성 된다new VIPCustomer() 호출하면 Customer() 가 먼저 호출된다. 클래스가 상속 받은 경우 하위 클래스의 생성자에서는 반드시 상위 클래스의 생성자를 호출한다 * super 키워드 (쓰는 예시 보면 약간 메서드 느낌)super 키워드는 하위 클래스가 상위 클래스 인스턴스의 참조 값을 가지게 한다 --> 하위 클래스에서 상위 클래스 꺼 쓸 수 있게 함또한 super 키워드는 this 와 마찬가지로 생성자를 호출할 수 있는 기능이 있다. --> 상위 클래스의 생성자를 호출한다. 상속을 받은 클래스에..

내림차순 정렬하면 끝 N = int(input())arr = []tmp = 0sum =0for i in range(N): arr.append(int(input()))arr.sort(reverse= True)for num in arr: if num- tmp > 0: sum += (num - tmp) tmp += 1print(sum) 그리디 알고리즘 정당성 분석
* Java 의 향상된 for문 (for-each loop)int[] numbers = {1, 2, 3, 4, 5};for (int num : numbers) { // 세미콜론이 아니고 콜론이다. System.out.println(num);}형태 : for ( int 변수 : 배열 ) { ... } * C언어에서의 동일한 기능 구현C언어에선느 foreach 스타일의 반복문을 직접적으로 지원하지 않는다그래서 비슷하게 만들어야 한다. #include int main() { int numbers[] = {1, 2, 3, 4, 5}; int length = sizeof(numbers) / sizeof(numbers[0]); // c언어에서 배열 길이 알아내는 방법 ..