목록✅🌲강의 복습 노트 (59)
컴퓨터공학 💻 도서관📚
정당성 분석 : 대부분의 경우 + 보다 * 가 더 큰 값을 만드는 것은 자명한 사실0과 1이 있을 때는 + 를 사용해야 값이 더 큼 연산을 진행하는 두 수 중에서 하나라도 0 or 1인 경우 + 를 하고 나머지는 * 를 한다 data = input()sum = 0for i in data: num = int(i) if num
문제 : 1이 될 때까지 어떤 수 N이 1이 될 때까지 다음 두 과정 하나를 반복적으로 수행하려고 한다. 단, 두 번째 연산은 N이 K로 나누어 떨어질 때만 선택할 수 있다. 1. N에서 1을 뺀다. 2. N을 K로 나눈다. 즉, 다시 말해 K로 나누어 떨어지는 수가 될때까지 1씩 빼는 거다. N과 K가 주어질 때 N이 1이 될 때까지 1,2번 과정을 수행해야 하는 최소 횟수를 구하는 프로그램을 작성하시오. 문제 해결 아이디어 주어진 N에 대하여 최대한 많이 나누기를 수행하면 최적의 해를 보장한다. K가 2 이상이기만 하면, K로 나누는 것이 1을 빼는 것보다 항상 빠르게 N을 줄일 수 있다. n, k = map(int, input().split()) # N, K를 공백을 기준으로 구분하여 입력 받기 r..
그리디 알고리즘(탐욕법) : 현재 상황에서 지금 당장 좋은 것만 고르는 방법 일반적인 그리디 알고리즘은 문제를 풀기 위한 최소한의 아이디어를 떠올릴 수 있는 능력을 요구한다. (like. 수학) 그리디 해법은 정당성 분석이 중요하다.단순히 가장 좋아 보이는 것을 반복적으로 선택해도 최적의 해를 구할 수 있는지 검토해야 한다.일반적인 상황에서 그리디 알고리즘은 최적의 해를 보장할 수 없을 때가 많다.하지만 코딩 테스트에서의 대부분의 그리디 문제는 그리디로 얻은 해가 최적의 해가 되도록 세팅해 놓는다.그리고 우린 이 문제가 그리디 문제인지 추론할 수 있어야 한다.문제 : 거스름 돈500원, 100원, 50원, 10원 동전이 무한히 있다. 손님에게 거슬러 주어야 할 돈이 N원일 때, 거슬러 주어야 할 동전의 ..
생성자 오버로딩 : 여러 가지 생성자를 '같이' 정의하는 것 public class UserInfo { public String userId; // 멤버변수: 객체의 특성 public String userPassWord; public String userName; public String userAddress; public String phoneNumber; // 생성자 오버로딩 public UserInfo(){} // 기본 생성자 public UserInfo(String userId, String userPassWord, String userName) { // 생성자 this.userId = userId; this.userPassWord = userPassWord; this.userName = user..
생성자 기본 문법 (정의)// ( [argument_list] ) { [statements] }// ex)public Student(int studentNumber, String studentName, int grade) { this.studentNumber = studentNumber; this.studentName = studentName; this.grade = grade; }멤버변수 이름과 매개변수 이름이 같을 때는 멤버변수 앞에 “ this. ” 를 붙여준다 this.studentNumber = studentNumber ( this.멤버변수명 = 매개변수명 ) (보통 두 개의 이름을 같게 한다. 나중에 찾아보기 쉽기 때문에) 객체를 생성할 때, new 키워드..
객체 : 객체 지향 프로그램의 대상, 생성된 인스턴스 클래스 : 객체를 프로그래밍 하기위해 코드로 정의해 놓은 상태 객체의 속성을 정의 하고, 기능을 구현하여 만들어 놓은 코드 상태 인스턴스 : new 키워드를 사용하여 클래스를 메모리에 생성한 상태Student studentLee = new Student();//클래스 인스턴스 생성자 멤버 변수 : 클래스의 속성, 특성메서드 : 멤버 변수를 이용하여 클래스의 기능을 구현한 함수 참조 변수 : 메모리에 생성된 인스턴스를 가리키는 변수참조 값 : 생성된 인스턴스의 메모리 주소값 new 키워드를 사용하여 인스턴스 생성 하나의 클래스로 부터 여러개의 인스턴스가 생성되고 각각 다른 메모리 주소를 가지게 됨 생성된 인스..
public class Student { public int studentID; //객체의 속성(정보) public String studentName; public String address; public void showStudentInfo() { //클라이언트 입장에서 메서드 이름 짓기 System.out.println(studentName + "," + address); } public String getStudentName() { //클라이언트 입장에서 메서드 이름 짓기 return studentName; }}public class StudentTest { public static void main(String[] args) { Student s..
메서드 : 함수의 한 종류 중 하나- 메서드와 함수의 차이 : 함수는 어디 속해 있지 않지만 메서드는 클래스 안에 속해 있고 그 클래스의 멤버 변수들을 활용해서 구현된 것이다.- 메서드 선언 방식은 C언어 함수 선언 방식과 똑같다. 메서드를 구현함으로써 객체의 기능이 구현된다. 메서드의 이름은 그 객체를 사용하는 객체(클라이언트)에 맞게 짓는 것이 좋다ex) getStudentName() (고객입장에서)public class Student { public int studentID; //객체의 속성(정보) public String studentName; public String address; public void showStudentInfo() { //클라이언트 입장..