2024/09 29

[JAVA] 클래스 상속

자바에서 클래스 상속이란?: 새로운 클래스를 정의할 때 기존에 정의된 클래스가 갖는 속성과 메소드를 모두 물려받고 자신의 속성과 메소드를 추가로 갖는 것상속은 객체지향 프로그래밍의 가장 큰 특징이다.상속을 사용하면 재사용성과 확장성을 높일 수 있다.재사용성 : 이미 정의된 클래스의 코드를 다시 작성할 필요 없이 자식 클래스에서 사용할 수 있게 해준다. 코드의 중복을 줄이고, 기존 코드를 재활용할 수 있다.확장성 : 기존 클래스를 확장하여 새로운 기능을 추가하거나, 기존기능을 변경하는 것이 매우 쉽다.    클래스의 계층 구조슈퍼클래스 : 상위의 현존하는 클래스파생클래스 or 서브 클래스 : 속성과 메소드를 물려받아 새로 정의한 하위의 클래스 자바언어에서 최상위에 Object 클래스를 갖으며 이 클래스가 ..

카테고리 없음 2024.09.30

[CS] 컴퓨터 구조의 큰 그림

컴퓨터가 이해하는 정보컴퓨터는 자바, C++, 파이썬과 같은 프로그래밍 언어를 직접 이해하지 못한다.컴퓨터가 이해할 수 있는 정보는 데이터와 명령어이다.명령어는 수행할 동작과 수행할 대상으로 이루어져있다.이 명령어를 실행하는 주체가 CPU이다. (명령어 사이클에 따라 처리)      컴퓨터의 핵심 부품CPU(중앙처리장치)메모리(주기억장치) + 캐시 메모리보조기억장치입출력장치      CPU (Central Processing Unit): 정보를 읽어들이고, 해석하고, 실행하는 부품사람으로 치면 두뇌에 해당하는 부품CPU의 주요 구성 요소, 빠른 명령어 처리를 위한 기술을 학습하는 것이 좋다.산술논리연산장치(ALU, Arithmetic and Logic Unit) : 연산을 수행할 회로로 구성되어있는 일종..

CS공부 2024.09.30

[Pypy] 백준 20303 할로윈의 양아치

문제Trick or Treat!!10월 31일 할로윈의 밤에는 거리의 여기저기서 아이들이 친구들과 모여 사탕을 받기 위해 돌아다닌다. 올해 할로윈에도 어김없이 많은 아이가 할로윈을 즐겼지만 단 한 사람, 일찍부터 잠에 빠진 스브러스는 할로윈 밤을 즐길 수가 없었다. 뒤늦게 일어나 사탕을 얻기 위해 혼자 돌아다녀 보지만 이미 사탕은 바닥나 하나도 얻을 수 없었다.단단히 화가 난 스브러스는 거리를 돌아다니며 다른 아이들의 사탕을 빼앗기로 마음을 먹는다. 다른 아이들보다 몸집이 큰 스브러스에게 사탕을 빼앗는 건 어렵지 않다. 또한, 스브러스는 매우 공평한 사람이기 때문에 한 아이의 사탕을 뺏으면 그 아이 친구들의 사탕도 모조리 뺏어버린다. (친구의 친구는 친구다?!)사탕을 빼앗긴 아이들은 거리에 주저앉아 울고..

백준풀이 2024.09.30

[JAVA] 패키지

패키지란?: 자바언어에서 제공되는 여러 클래스 또는 인터페이스들의 특성을 고려하여 분류해 놓은 것   패키지 사용 시 장점클래스의 이름이나 메소드 이름이 같으면 충돌이 발생하는데 패키지 단위로 구분해놓으면 충돌을 방지할 수 있다.패키지 단위로 클래스, 메소드, 변수 등의 접근을 제한할 수 있다.동일한 특성과 성격을 기준으로 클래스들을 분류하면 클래스의 사용과 관리가 용이하다.    패키지 사용방법패키지 선언package OOP.com.info.dept;-> 클래스나 인터페이스의 첫 번째 줄에 package 키워드를 사용해 해당 파일이 어떤 패키지에 속하는지 선언한다. 패키지 임포트import java.util.ArrayList;import java.util.*; // 패키지 내의 모든 클래스 import..

JAVA/기초공부 2024.09.29

[JAVA] String 클래스

자바에서 String 클래스란?: 자바에서 문자열을 다루기 위해 제공되는 대표적인 클래스문자열은 char의 배열로 구성된 데이터 타입이며 자바에서는 String 클래스가 이러한 문자열을 처리하고 관리하는 역할을 한다.   String 클래스 주요 특징1. 불변성String 객체는 한 번 생성되면 그 값을 변경할 수 없다. 문자열을 수정하는 경우 새로운 String 객체가 생성되고 원래의 문자열은 변경되지 않는다. -> 멀티스레드 환경에서 안전하게 사용할 수 있다. (상태 변화가 없기 때문에 동기화 불필요, 공유 객체를 안전하게 재사용, 데이터 일관성 보장) 2. 리터럴로 선언 가능String str = "Hello"; 처럼 문자열 리터럴을 이용해 선언할 수 있다. 자바는 동일한 리터럴 값을 가진 문자열을..

JAVA/기초공부 2024.09.29

[Python] 백준 1461 도서관

문제세준이는 도서관에서 일한다. 도서관의 개방시간이 끝나서 세준이는 사람들이 마구 놓은 책을 다시 가져다 놓아야 한다. 세준이는 현재 0에 있고, 사람들이 마구 놓은 책도 전부 0에 있다. 각 책들의 원래 위치가 주어질 때, 책을 모두 제자리에 놔둘 때 드는 최소 걸음 수를 계산하는 프로그램을 작성하시오. 세준이는 한 걸음에 좌표 1칸씩 가며, 책의 원래 위치는 정수 좌표이다. 책을 모두 제자리에 놔둔 후에는 다시 0으로 돌아올 필요는 없다. 그리고 세준이는 한 번에 최대 M권의 책을 들 수 있다.https://www.acmicpc.net/problem/1461       난이도골드4      내 코드import sysn, m = map(int,sys.stdin.readline().split())book..

백준풀이 2024.09.28

[JAVA] this와 this() 메소드

this의 사용클래스 내의 자신의 객체를 가리키는 것이 this 이다.주로 생성자에서 멤버변수와 생성자의 형식매개변수의 이름을 동일하게 정의한 경우 this. 으로 표현하여 멤버변수와 인수를 구분하는데 사용한다.필드와 매개변수 구분이나 현재 객체 반환에 유용하다.class Shape { int width; int height; String color; // 생성자 // this : 멤버변수와 생성자의 매개변수를 구분하기 위해 사용 Shape(int width, int height) { this.width = width; this.height = height; } // 메소드 void setColor(String color) { ..

JAVA/기초공부 2024.09.28

[JAVA] 생성자와 생성자 중복

생성자란?: 객체가 생성될 때 호출되는 특별한 메서드    자바에서 생성자를 사용하는 이유?객체가 생성될 때 필요한 초기화 작업을 수행하고 특정 상태로 객체를 설정하기 위해서예 ) 멤버변수로 이름, 학번, 학과를 가진 객체를 만든다고 했을 때- 생성자 없이 만들경우class MyInfo_01 { public String name; public int number; public String dept;}public class ConstructorTest_01 { public static void main(String[] args) { // MyInfo_01 클래스 형인 객체 my 생성 MyInfo_01 my = new MyInfo_01(); // ..

JAVA/기초공부 2024.09.28

[Python] 2143 두 배열의 합

문제한 배열 A[1], A[2], …, A[n]에 대해서, 부 배열은 A[i], A[i+1], …, A[j-1], A[j] (단, 1 ≤ i ≤ j ≤ n)을 말한다. 이러한 부 배열의 합은 A[i]+…+A[j]를 의미한다. 각 원소가 정수인 두 배열 A[1], …, A[n]과 B[1], …, B[m]이 주어졌을 때, A의 부 배열의 합에 B의 부 배열의 합을 더해서 T가 되는 모든 부 배열 쌍의 개수를 구하는 프로그램을 작성하시오.예를 들어 A = {1, 3, 1, 2}, B = {1, 3, 2}, T=5인 경우, 부 배열 쌍의 개수는 다음의 7가지 경우가 있다.T(=5) = A[1] + B[1] + B[2] = A[1] + A[2] + B[1] = A[2] + B[3] = ..

백준풀이 2024.09.26

[PyPy] 백준 7453 합이 0인 네 정수

문제정수로 이루어진 크기가 같은 배열 A, B, C, D가 있다.A[a], B[b], C[c], D[d]의 합이 0인 (a, b, c, d) 쌍의 개수를 구하는 프로그램을 작성하시오.https://www.acmicpc.net/problem/7453      난이도골드2     내 코드import sysn = int(sys.stdin.readline())answer = 0A = []B = []C = []D = []for _ in range(n) : a,b,c,d = map(int,sys.stdin.readline().split()) A.append(a) B.append(b) C.append(c) D.append(d)x = []y = []for i in range(n) : f..

백준풀이 2024.09.26