3번째 과제 오버라이딩이란? - 조상 클래스로부터 상속받은 메서드의 내용을 변경하는 것이다. @Override 어노테이션이란? - 컴파일러에게 오버라이딩하는 메서드라는 것을 알린다. 오버라이딩을 구현할 때 @Override 어노테이션이 반드시 필요한지? // 힌트. 아래 코드를 활용해보셔요. class Parent { public void hello(String name) { System.out.println("안녕하세요, 저는 " + name + "입니다."); } } class Child extends Parent{ // @Override가 있으면 어떻고 없으면 어떤가요? public void hello() { System.out.println("안녕!"); } } 1) @Override 어노테이션이..
2번째 과제 1. 인터페이스가 가지고 있는 객체 지향의 특징 - 캡슐화 - 추상화 - 다형성 - 상속 인터페이스는 객체 지향의 4가지 특징 모두 가지고 있다. 2. 그렇게 생각하는 이유 - 캡슐화 : 접근 제어자를 사용할 수 있기 때문이다. - 추상화 : 인터페이스는 일종의 추상클래스이기 때문이다. - 다형성 : 인터페이스도 인스턴스를 참조할 수 있으며, 인터페이스 타입으로의 형변환이 가능하기 때문이다. - 상속 : 인터페이스는 인터페이스로부터 상속받는 것이 가능하기 때문이다. 다중 상속도 가능하다. 인터페이스 작성 interface 인터페이스이름 { public satic final 타입 상수이름 = 값; public abstract 메서드이름(매개변수목록); }
1번째 과제 객체 지향의 특징 4가지 개념 1. 캡슐화 - 데이터가 유효한 값을 유지하도록, 또는 비밀번호와 같은 데이터를 외부에서 함부로 변경하지 못하도록 하기 위해서 외부로부터의 접근을 제한하는 것 - 클래스 내에서만 사용되는, 내부 작업을 위해 임시로 사용되는 멤버변수나 부분작업을 처리하기 위한 메서드 등의 멤버들을 클래스 내부에 감추는 것 - private 로 지정하면, 외부에서 접근 불가함 2. 상속 - 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것 - 상속을 통해 클래스를 작성하면 적은 양의 코드로 새로운 클래스 작성 가능 - 코드를 공통적으로 관리할 수 있기 때문에 코드의 추가 및 변경이 용이하다 - 코드의 재사용성을 높이고 코드의 중복을 제거하여 프로그램의 생산성과 유지보수에 크게..
김영한 - 스프링 입문 : 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 [무료] 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 - 인프런 | 강의 스프링 입문자가 예제를 만들어가면서 스프링 웹 애플리케이션 개발 전반을 빠르게 학습할 수 있습니다., 스프링 학습 첫 길잡이! 개발 공부의 길을 잃지 않도록 도와드립니다. 📣 확인해주세 www.inflearn.com 시작 9월 4일 수강 시작 - 목표는 2주 이내 수강 완료하기 복습할 겸 스프링 입문 강의부터 다시 공부해보기로 했다. 이번 강의 수강 끝나면 로드맵 순서대로 수강할 예정이다. 그동안 생각만 했던 아이디어를 개인 프로젝트라도 구현해보고 싶다. 배포까지 하는게 올해 목표! Section 1. 프로젝트 환경설정 ..
탐욕법(그리디) Lv2. 큰 수 만들기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 어떤 숫자에서 k개의 수를 제거했을 때 얻을 수 있는 가장 큰 숫자를 구하려 합니다. 예를 들어, 숫자 1924에서 수 두 개를 제거하면 [19, 12, 14, 92, 94, 24] 를 만들 수 있습니다. 이 중 가장 큰 숫자는 94 입니다. 문자열 형식으로 숫자 number와 제거할 수의 개수 k가 solution 함수의 매개변수로 주어집니다. number에서 k 개의 수를 제거했을 때 만들 수 있는 수 중 가장 큰 숫자를 문자열 형태로 return 하도록 sol..
연습문제 Lv2. 롤케이크 자르기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 철수는 롤케이크를 두 조각으로 잘라서 동생과 한 조각씩 나눠 먹으려고 합니다. 이 롤케이크에는 여러가지 토핑들이 일렬로 올려져 있습니다. 철수와 동생은 롤케이크를 공평하게 나눠먹으려 하는데, 그들은 롤케이크의 크기보다 롤케이크 위에 올려진 토핑들의 종류에 더 관심이 많습니다. 그래서 잘린 조각들의 크기와 올려진 토핑의 개수에 상관없이 각 조각에 동일한 가짓수의 토핑이 올라가면 공평하게 롤케이크가 나누어진 것으로 생각합니다. 예를 들어, 롤케이크에 4가지 종류의 토핑이 올..
연습문제 Lv2. 귤 고르기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 경화는 과수원에서 귤을 수확했습니다. 경화는 수확한 귤 중 'k'개를 골라 상자 하나에 담아 판매하려고 합니다. 그런데 수확한 귤의 크기가 일정하지 않아 보기에 좋지 않다고 생각한 경화는 귤을 크기별로 분류했을 때 서로 다른 종류의 수를 최소화하고 싶습니다. 예를 들어, 경화가 수확한 귤 8개의 크기가 [1, 3, 2, 5, 4, 5, 2, 3] 이라고 합시다. 경화가 귤 6개를 판매하고 싶다면, 크기가 1, 4인 귤을 제외한 여섯 개의 귤을 상자에 담으면, 귤의 크기의 종류..
1. chr() - 아스키코드 정수값을 character형(문자)으로 변환하는 내장 함수 - ord() 함수의 반대이다 print(chr(65)) # 문자열 'A' 출력 print(chr(97)) # 문자열 'a' 출력 2. ord() - 문자열을 해당 문자의 아스키코드 정수값으로 변환하는 내장 함수 - chr() 함수의 반대이다 print(ord('A')) # 정수 65 출력 print(ord('a')) # 정수 97 출력 * 주로 사용하는 경우 : 문자열 문제에서 알파벳 + 1 해줘야하는 경우가 있을 때 예시 - Java나 C++ 에서는 'a' + 1 해주면 되지만 파이썬에서는 해당되지 않기 때문에 변환 후 계산해주어야 한다. 1) ord('a') = 97 이므로 + 1 계산하면 98 2) chr(9..
재귀 깊이 제한 설정 import sys sys.setrecursionlimit(10 ** 6) 파이썬의 기본 재귀 깊이 제한은 최대 1000까지만 지원하기 때문에 매우 얕다 따라서 함수 호출이 많은 재귀, DFS 문제에서 런타임에러가 나지 않으려면 상단에 위와 같이 설정해주어야한다