Explain 스택 (Stack) : 하노이탑에 개체를 쌓듯 데이터가 LIFO(Last-In First-Out) 구조로 쌓이는 자료구조 - 배열이나 연결리스트 둘다 구현가능 - 중간에서 데이터의 수정이 일어나지 않음 - 맨 위의 위치를 top, 맨 아래의 위치를 bottom 이라 칭함 - LIFO (후입선출) 구조로 가장 나중에 넣은것이 가장 먼저 나오는 자료구조 - push() = 데이터 삽입, pop() = 데이터 빼기 처럼 사용가능 - 실무 사용 예로 게임개발에서 두 수 무르기, 왔던 곳을 되돌아가기 등의 기능을 구현할때 사용 - 자바 JDK에서는 Stack 클래스로 구현하거나 ArrayList로 구현이 가능 - Peek() : 일종의 get()으로 스택의 맨 위에 있는 원소를 반환 (=실제로 꺼내..
Explain 제네릭 프로그래밍 (Generic Programmming) : 변수의 선언이나 메서드의 매개변수를 하나의 참조 자료형이 아닌 여러 자료형을 변환될 수 있도록 프로그래밍 하는 방식 - 실제 사용되는 참조 자료형으로의 변환은 컴파일러가 검증하므로 안정적 - 컬렉션 프레임워크에서 많이 사용되고 있음 1. 제네릭 클래스는 여러 참조 자료형으로 대체될 수 있어야하므로 그 부분을 "하나의 문자"로 표현함 >> 이 문자를 '자료형 매개변수' 라고함 >> 자료형 매개변수 선언은 T 로 하며, 이 T는 Type의 의미로 사용됨 다이아몬드 연산자 안에 T를 사용해 표현 static키워드는 매개변수 T에 사용이 불가하다. 2. 예시로 T extends 클래스 = T가 사용될 클래스를 제한하기 위해 사용하는 기..
강의를 참고해 만든 프로그램이므로 코딩 난이도는 다소 떨어질 수 있습니다. Introduction ArrayList를 이용해 동물 클래스로부터 상속받는 Human, Tiger, Eagle, Bear 클래스를 만든다. 각 클래스는 공통적으로 move()메서드가 있으며, 각각 다른 기능의 메서드가 존재한다. 구현은 print문을 통해 간단히 확인한다. 부모 클래스 (class Animal) class Animal { public void move() { System.out.println("동물이 움직입니다."); } } 큰 카테고리인 동물 클래스를 만들고 이로부터 상속받을 수 있도록 코드를 구현한다. 자식 클래스 (class Human, Tiger, Eagle, Bear) class Human extends..
강의를 참고해 상속없이, 객체 간의 협업으로 만든 프로그램이므로 코딩 난이도는 다소 떨어질 수 있습니다. Introduction 필요한 클래스 : 학생, 버스, 지하철 '학생'클래스의 정보 : 이름, 학년, 돈 '학생'클래스의 메서드 : 탄다, 정보 '버스'클래스의 정보 : 버스번호, 승객 수, 돈 '버스'클래스의 메서드 : 태우다, 정보 '지하철'클래스의 정보 : 노선번호, 승객 수, 돈 '지하철'클래스의 메서드 : 태우다, 정보 첫번째 클래스 (Student.java) package cooperation; public class Student { int grade; int money; String studentName; public Student(String studentName, int money)..
Example Student studentLee = new Student(); Explain 라는 코드에서 Student() 는 "생성자"를 의미한다. 그렇다면 public Student() { } 처럼 기본생성자를 넣어주어야하지만 코드에는 없어도 실행이 잘되는 것을 확인할 수 있다. 왜냐하면 자바 컴파일러가 자동적으로 추가해 실행해주기 때문인데, 자바 컴파일러는 클래스에 생성자가 하나도 없는 경우에 기본생성자를 알아서 추가해서 실행해주는 특징이 있다. * 특징 1. 매개변수가 없음 2. 하나의 클래스에는 반드시 적어도 하나 이상의 생성자가 존재해야함 3. 프로그래머가 따로 지정하지 않으면 컴파일러가 기본생성자를 자동으로 코드에 추가해줌 4. 만약 매개변수가 있는 생성자를 추가하게 된다면 기본생성자는 제..
실습문제 1번 자바에서 10진수와 2진수, 8진수, 16진수를 어떻게 표현하는지 프로그래밍 하기 package binary; public class BinaryTest { public static void main(String[] args) { int num = 10; int numA = 0B1010; // 0B = 2진수 라는 뜻 int numB = 012; // 0으로 시작하면 = 8진수 라는 뜻 int numC = 0XA; // 0X = 16진수 라는 뜻, A는 10을 의미함 // 9, A, B, C, D, E, F, 10, 11, 12, 13, 14, 15, 16... System.out.println(num); System.out.println(numA); System.out.println(nu..
파이썬 코딩연습으로 문제를 풀어보았습니다. 이 문제는 조건문(if, elif, else)문 등을 유용하게 활용해서 풀어보는 문제여서 조건문 연습에 적합한 것 같습니다. 키워드 if문, elif문, if-else문 문제 1번 수학점수 및 영어점수를 4가지 유형으로 판단하여 "합격", "수학 불합격", "영어 불합격", "수학 영어 모두 불합격"으로 출력하라. 문제마다 조건이 상이함 if(math >= 90) and (english >= 80): 로 시작하여 else에 두번 중첩시키는 구조로 작성할 것 ''' #문제 1번 if(math >= 90) and (english >= 80): 로 시작하여 else에 두번 중첩시키는 구조로 작성할 것 ''' math = int(input("수학점수: ")) engli..
파이썬 코딩을 연습해보기 위해 연습문제 위주로 코딩공부 하는 중입니다. 피드백 달게 받겠습니다! 문제 1번 다음 프로그램의 출력은 무엇인가? age = 20 if age = 30 and age = 25: print('반바지를 입으세요') else: print('긴바지를 입으세요') 실행결과 문제 4번 학생의시험 점수를 물어보고 시험 점수가 90점 이상이면 A, 80점 이상이면 B, 70점이상이면 ..
파이썬 코딩을 연습해보기 위해 연습문제 위주로 다시 코딩해보려고 합니다. 부족한 점이 있으면 피드백 감사히 받겠습니다. 연습문제 1번 왜 다음과 같은 수식이 오류를 발생시키는가? 올바르게 수정하라. '나는 ' + 12 + '개의 사과를 먹었다.' #연습문제 1번 #문제가 되는 수식 print('나는' + 12 + '개의 사과를 먹었다.') print('나는 + 12 + 개의 사과를 먹었다.') #오류수정한 수식 print('나는' + '12' + '개의 사과를 먹었다.') print('나는' + str(12) + '개의 사과를 먹었다.') 실행결과 >> 오류 발생 혹은 원치 않는 결과 발생 연습문제 2번 다음과 같은 수식을 계산하면 결과는 무엇인지? 실행결과 좀 더 보기쉽게 수정한다면 print('app..