본문 바로가기

분류 전체보기201

[객체 지향 프로그래밍] 6.1 객체 지향 프로그래밍 OOP (Object Oriented Programming) 만들고자 하는 완성품인객체를 모델링하고, 집합 관계에 있는 부품 객체와 사용 관계에 있는 객체를 하나씩 설계한 후 조립하는 방식으로 프로그램을 개발하는 기법이다. 객체란? 물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서 자신의 속성을 가지고 있고 다른 것과 식별 가능한 것 객체 = 속성(필드) + 동작(메소드) 예로 자동차는 색상, 모델명 등의 속성과 달린다, 멈춘다 등의 동작이 있다. 객체 모델링이란? 현실 세계의 객체를 SW 객체로 설계하는 것을 객체 모델링이라고 한다. 객체 모델링은 현실 세계의 속성과 동작을 추려내어 소프트웨어 객체의 필드와 메소드로 정의하는 과정이라고 볼 수 있다. 객체의 상호작용.. 2023. 1. 25.
[백준] 15649 N과 M(1) 💡 문제 https://www.acmicpc.net/problem/15649 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 💡 정답 n, m = map(int, input().split()) s=[] def dfs() : if len(s) == m: print(' '.join(map(str,s))) return for i in range(1, n+1): if i not in s: s.append(i) dfs() s.pop() dfs() 💡 풀이 이 문제는 Python을 사용한다면, itertools.perm.. 2023. 1. 24.
[참조 타입] 배열(Array) 5.6 배열 타입 변수는 하나의 값만 저장할 수 있다. 따라서 저장해야 할 값의 수가 많아지면 그 만큼 많은 변수가 필요하다. 이를 해결하기 위해 배열을 사용한다. 배열이란? 연속된 공간에 값을 나열시키고, 각 값에 인덱스를 부여해 놓은 자료구조이다. 특징 배열은 같은 타입의 값만 관리한다. 배열의 길이는 늘리거나 줄일 수 없다. 배열 변수 선언은 관례적으로 첫 번째 방법을 주로 사용한다. 타입[] 변수; 타입 변수[]; 배열 변수는 참조 변수이다. 배열도 객체이므로 힙 영역에 생성되고 배열 변수는 힙 영역의 배열 주소를 저장한다. 참조할 배열이 없다면 배열 변수도 null로 초기화할 수 있다. 값 목록으로 배열 생성 타입[] 변수 = {값0, 값1}; 중괄호 {}는 나열된 값들을 항목으로 가지는 배열을.. 2023. 1. 24.
[인증] remote: Invalid username or password. 프로젝트 브랜치를 이것 저것 사용하다 보니, 아래 명령어를 입력한다. 그런데! git push --set-upstream origin main 인증을 실패할 때, 토큰이나 브라우저로 인증을 해야하는 경우가 있다. 이런 경우 아래와 같은 창이 뜨는데~ 💡 해결방법: 개인 토큰 받기 첫 번째. setting 클릭 두 번째. 왼쪽 하단에 Developer settings 클릭 세 번째. 왼쪽 하단에 Personal access tokens에서 Tokens(classic)클릭 네 번째. Generate new token 클릭 다섯 번째. Note와 토큰 세팅 토큰 이름을 입력해 주고(Note), 커맨드 라인을 통해 repository에 엑세스 하길 원한다면 repo에 체크! 세팅이 완료되었다면 맨 아래 gene.. 2023. 1. 23.
[변수 & 참조 타입] String String은 기본 타입이 아닌 클래스 타입이고 참조 변수이다. 문자열을 String 변수에 대입하면 문자열이 변수에 직접 저장되는 것이 아니라, String 객체가 생성되고, String 변수는 String 객체의 번지를 참조하게 된다. 문자열을 저장하기 위해 String변수를 사용한다. char 타입의 변수에 어떤 문자를 대입하지 않고 단순히 초기화를 할 목적이면 공백을 포함시킨다. char c = ' '; //공백을 하나 포함해야 컴파일에러가 발생하지 않는다. 5.5 문자열 타입 자바는 문자열 리터럴이 동일하다면 String 객체를 공유하도록 설계되어 있다. String 변수에 문자열 리터럴을 대입하는 것이 일반적이지만, new 연산자로 직접 String 객체를 생성하고 대입할 수도 있다. new .. 2023. 1. 23.
[참조 타입] 데이터 타입 분류 5.1 데이터 타입 분류 자바의 데이터 타입은 크게 기본 타입과 참조 타입으로 분류된다. 참조 타입이란 객체의 번지를 참조하는 타입으로 배열, 열거, 클래스, 인터페이스 타입이 있다. 기본 타입과 참조 타입의 변수의 차이점 기본 타입으로 선언된 변수 : 값 자체를 스택 메모리 영역에 저장 참조 타입으로 선언된 변수 : 번지를 스택 메모리 영역에 저장하고 힙 메모리 영역에 있는 값을 참조한다. * 객체란? 데이터와 메소드로 구성된 덩어리 5.2 메모리 사용 영역 java 명령어로 JVM이 구동되면 JVM은 운영체제에서 할당받은 메모리 영역을 다음과 같이 구분해서 사용한다. 메소드 영역 바이트코드 파일이 저장되는 영역 힙 영역 객체가 생성되는 영역. 객체의 번지는 메소드 영역과 스택 영역의 상수와 변수에서 .. 2023. 1. 21.
[변수] 타입 변환 2.3.1 자동 타입 변환 작은 크기를 가지는 타입이 큰 크기를 가지는 타입에 저장될 때 발생한다. 큰 크기 타입과 작은 크기 타입의 구분은 사용하는 메모리 크기이다. 크기별로 타입을 정리하면 다음과 같다. byte(1) < short(2) < int(4) < long(8) < float(4) < double(8) float가 long보다 더 큰 타입으로 표시된 이유는 표현할 수 있는 값의 범위가 float이 더 크기 때문이다. char 타입의 경우 int 타입으로 자동 변환되면 유니코드 값이 int 타입에 저장된다. char charValue = 'A'; int intValue = charValue; //65가 저장 자동 타입 변환에서 단 하나의 예외가 있는데, char는 2byte의 크기를 가지지만,.. 2023. 1. 17.
[chapter2] 확인문제 1. 변수에 대해 잘못 설명한 것은 무엇입니까? 4번 변수는 초기값이 저장되지 않은 상태에서 읽을 수 있다. -> 읽을 수 없다. 초기값이 저장되야 읽을 수 있음. 2. 변수 이름으로 사용할 수 없는 것을 모두 선택하세요. 2번 class, 3번 6hour, 6번 #name, 7번 int 3. 다음 표의 빈 칸에 자바의 기본 타입 8개를 적어보세요. 크기 1byte 2byte 4byte 8byte 정수타입 byte short, char int long 실수타입 float double 논리타입 boolean 4. 다음 코드에서 타입, 변수 이름, 리터럴에 해당하는 것을 적어보세요. 타입: int, double 변수 이름: age, price 리터럴: 10, 3.14 5. 다음 자동 타입 변환에서 컴파일 에.. 2023. 1. 16.
[chapter3] 확인문제 1. 연산자와 연산식에 대한 설명 중 틀린 것은 무엇입니까? 연산식은 하나의 값만 산출한다. 2. 다음 코드를 실행했을 때 출력 결과는 무엇입니까? public class main{ public static void main(String[] args){ int x = 10; int y = 20; int z = (++x) + (y--); //z = 11+20 = 31, x=11, y=19 System.out.println(z); } } 3. 다음 코드를 실행했을 때 출력 결과는 무엇입니까? public class main{ public static void main(String[] args){ int score = 85; String resultl = (!(score>90))? "가":"나"; System.. 2023. 1. 16.
[chapter4] 확인문제 1. 조건문과 반복문에 대해 잘못 설명한 것은 무엇입니까? 2번. switch문에서 사용할 수 있는 변수의 타입은 int, str이 될 수 있다. (자바 7버전 부터 str 가능) 2. 위쪽 switch문을 표현식으로 변경해보세요. String grade = "B"; int score1 =0; switch (grade) { case "A": score1 = 100; break; case "B": int result = 100 -20; score1 = result; break; default: score1 = 60; } public class Ex4_2 { public static void main(String[] args) { String grade = "B"; int score1 =0; switch (.. 2023. 1. 16.
[제어문] 반복문(for문, while문, do-while문) for문은 반복 횟수를 알고 있을 때 주로 사용한다. while문은 조건에 따라 반복할 때 주로 사용한다. while문과 do-while문의 차이점은 조건을 먼저 검사하느냐 나중에 검사하느냐일 뿐 동작 방식은 동일하다. 4.3.1 for문 int sum = 0; for (int i=1; i 2023. 1. 16.
[제어문] 조건문(if문, switch문) 제어문의 종류는 조건문과 반복문이 있다. 제어문은 (조건식) { }로 구성되는데, 조건식의 연산 결과에 따라 블록 내부의 실행 여부가 결정된다. 4.2.1 조건문 (if문) if (조건식) { } 조건식이 true면 블록을 실행하고 false면 블록을 실행하지 않는다. public class Main { public static void main(String[] args) { int score = 93; if(score >= 90){ System.out.println("점수가 90보다 큽니다."); System.out.println("등급은 A입니다."); } if(score < 90) System.out.println("점수가 90보다 작습니다."); //if 문과는 상관있는 실행문 System.out.. 2023. 1. 16.