전체 글 66

[JAVA] java.lang 패키지 내의 주요 클래스들

java.lang 패키지란?자바 프로그래밍의 핵심이 되는 기본 클래스들을 포함하고 있으며, 별도의 import 없이 사용할 수 있는 표준 패키지이다.ex ) Object 클래스, String 클래스, Math 클래시, System 클래스, Class 클래스, Wrapper 클래스 등등     Object 클래스자바에서 모든 클래스의 최상위 클래스모든 객체는 기본적으로 Object 클래스를 상속받는다.주요 메서드 : equals(), hashCode(), toString(), clone()     Class 클래스클래스의 메타데이터에 접근하거나 동적으로 객체를 생성하는 등의 작업을 할 수 있다.주요 메서드 : getName(), newInstance(), forName()     래퍼(Wrapper) 클래..

JAVA/기초공부 2024.10.13

[JAVA] 예외처리

프로그래을 실행하는 도중에 논리적인 오류나 예기치 못한 시스템 오류들을 접하게 된다. 시스템 오류  - 갑자기 수행을 멈추거나 디스크오류 등의 시스템과 관련된 오류로서 해결이 불가능하다.논리적 오류 - 구문적으로는 올바르지만 개발자가 의도한 대로 동작하지 않는 경우비정상적인 오류(Exception) - 시스템 오류나 논리적 오류가 아닌 오류비정상적인 예외인 경우 프로그램에서 오류를 미리 예측하고 대비하여 적절한 처리를 한 다음 프로그램 수행을 계속하여 정상적인 종료가 되도록 한다.(exception handling)     예외처리 종류Array Index Out Of Bounds Exception배열의 크기를 초과하여 인덱스 지정한 경우ArithmeticException나눗셈에서 0으로 나눈 경우 발생..

JAVA/기초공부 2024.10.13

[Python] 백준 17387 선분 교차 2

문제2차원 좌표 평면 위의 두 선분 L1, L2가 주어졌을 때, 두 선분이 교차하는지 아닌지 구해보자. 한 선분의 끝 점이 다른 선분이나 끝 점 위에 있는 것도 교차하는 것이다.L1의 양 끝 점은 (x1, y1), (x2, y2), L2의 양 끝 점은 (x3, y3), (x4, y4)이다.https://www.acmicpc.net/problem/17387     난이도골드 2     코드import sysdef CCW(a1,b1,a2,b2,a3,b3) : ccw = (a2-a1) * (b3-b1) - (b2-b1) * (a3-a1) return ccwx1,y1,x2,y2 = map(int,sys.stdin.readline().split())x3,y3,x4,y4 = map(int,sys.stdi..

백준풀이 2024.10.11

[Python] 백준 16946 벽 부수고 이동하기 4

문제N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 한 칸에서 다른 칸으로 이동하려면, 두 칸이 인접해야 한다. 두 칸이 변을 공유할 때, 인접하다고 한다.각각의 벽에 대해서 다음을 구해보려고 한다.벽을 부수고 이동할 수 있는 곳으로 변경한다.그 위치에서 이동할 수 있는 칸의 개수를 세어본다.한 칸에서 이동할 수 있는 칸은 상하좌우로 인접한 칸이다.    난이도골드 2    코드import sysfrom collections import dequen, m = map(int,sys.stdin.readline().split())graph = []group_width = [0,0] # 그룹번호의 너비를 담는 리스트group_nu..

백준풀이 2024.10.10

[JAVA] 인터페이스 (Interfaces)

자바에서 인터페이스란?: 클래스가 구현해야 하는 메서드들의 집합을 정의하는 일종의 템플릿객체의 동작을 명시하는 역할을 한다.해당 인터페이스를 구현하는 클래스는 그 안에 선언된 모든 메서드를 반드시 구현해야 한다. 특징인터페이스 안에는 기본적으로 구현되지 않은 추상 메서드들이 정의된다. 메서드들은 선언만 되어  있고 실제 구현은 인터페이스를 구현하는 클래스에서 이루어진다.자바 클래스는 여러 인터페이스를 구현할 수 있다. 이를 통해 다형성을 높이고 클래스가 다양한 행동을 가질 수 있게 한다.인터페이스 안에 선언된 변수는 암묵적으로 public, static, final 로 간주되며 상수로 동작한다.인터페이스는 다른 인터페이스를 상속할 수 있으며 여러 인터페이스로부터 상속받아 새로운 인터페이스를 정의할 수 있..

JAVA/기초공부 2024.10.09

[Python] 백준 12015 가장 긴 증가하는 부분 수열 2

문제수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오.예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이고, 길이는 4이다.https://www.acmicpc.net/problem/12015        난이도골드2    내 코드import sysdef binarySearch(value) : left = 0 right = len(lis) - 1 while left value : right = mid - 1 else : left = mid + 1 return leftn = int(sys..

백준풀이 2024.10.09

[JAVA] 추상 클래스

개요자바언어는 클래스들이 중심인 언어로서 문제 해결을 위한 클래스를 설계할 때 클래스의 사용과 구현을 분리하여 무엇을 해야 하는지에 중점을 두어 설계한다.슈퍼 클래스에서 행위에 해당하는 메소드를 나타내고 그 행위를 어떻게 하는지는 추상적으로 표현함으로써 무엇을 하는가를 알 수 있는 명세서를 제공한다.서브클래스에서 슈퍼 클래스의 메소드를 오버라이딩하여 실제 어떻게 해야하는지를 구현해야 한다.추상적으로 표현된 클래스는 인스턴스를 만들 수 없으며 실체가 없는 추상클래스가 된다.     추상 클래스 (Abstract  Class): 추상 메소드를 하나 이상 포함 하고 있는 클래스의 경우추상 메소드는 메소드의 선언 부분만을 가지고 있으므로 상속 받은 자식 클래스에서 반드시 구현을 필요로 하는 메소드이다.     ..

JAVA/기초공부 2024.10.09

[JAVA] 형 변환, static, final

클래스의 형 변환이란?: 객체가 다른 타입으로 변환되는 것업캐스팅과 다운캐스팅이 있다.    업캐스팅: 하위 클래스의 객체를 상위 클래스 타입으로 변환하는 것업캐스팅은 암시적으로 이루어지기 때문에 명시적으로 변환할 필요가 없음🔸 업캐스팅을 하면 상위 클래스에 정의된 메서드들만 사용할 수 있고, 하위 클래스에 추가된 메서드는 사용할 수 없다.🔸 업캐스팅을 하면 객체는 실제로는 여전히 원래의 하위 클래스의 인스턴스이지만, 상위 클래스 타입으로 참조하게 된다. => 객체의 실제 타입이 바뀌는 것이 아니라 그 객체를 가리키는 참조 변수의 타입이 바뀌는 것    다운캐스팅: 상위 클래스 타입의 객체를 하위 클래스 타입으로 변환하는 것업캐스팅과 달리 명시적으로 변환을 해주어야 한다🔸 잘못된 다운캐스팅은 Cla..

JAVA/기초공부 2024.10.09

[JAVA] 접근 제한자

자바에서 접근 제한을 두는 이유캡슐화 개념을 구현하기 위해서캡슐화 : 객체 지향 프로그래밍의 중요한 원칙 중 하나로 객체의 내부 상태를 숨기고 외부에서는 제공된 메서드를 통해서만 접근할 수 있도록 제한하는 것. 코드를 더 안전하게 만들고 유지보수를 쉽게 할 수 있다.    클래스 접근 제한자1.  public 접근 제한자어느 패키지에서나 접근이 가능프로젝트 내의 모든 코드에서 해당 클래스를 사용할 수 있다. 2. default 접근 제한자접근 제한자를 명시하지 않으면 default 접근 제한자를 갖는다.같은 패키지 내에서만 접근이 가능하다. public 이 자주 사용되어 해당 클래스가 다른 패키지에서도 사용될 수 있도록 한다.하지만 내부적인 처리를 위한 클래스는 default로 설정하여 외부에서의 접근을..

JAVA/기초공부 2024.10.03

[Python] 백준 16562 친구비

문제19학번 이준석은 학생이 N명인 학교에 입학을 했다. 준석이는 입학을 맞아 모든 학생과 친구가 되고 싶어한다. 하지만 준석이는 평생 컴퓨터랑만 대화를 하며 살아왔기 때문에 사람과 말을 하는 법을 모른다. 그런 준석이에게도 희망이 있다. 바로 친구비다!학생 i에게 Ai만큼의 돈을 주면 그 학생은 1달간 친구가 되어준다! 준석이에게는 총 k원의 돈이 있고 그 돈을 이용해서 친구를 사귀기로 했다. 막상 친구를 사귀다 보면 돈이 부족해질 것 같다는 생각을 하게 되었다. 그래서 준석이는 “친구의 친구는 친구다”를 이용하기로 했다.준석이는 이제 모든 친구에게 돈을 주지 않아도 된다!위와 같은 논리를 사용했을 때, 가장 적은 비용으로 모든 사람과 친구가 되는 방법을 구하라.      난이도골드 4      내 코..

백준풀이 2024.10.02