Loading...

[Java]자바로 구현하는 절댓값 우선순위 큐

1. 문제 배열에 다음과 같은 연산을 할 수 있습니다. 배열에 정수 x (x ≠ 0) 를 넣습니다. 배열에서 절댓값이 가장 작은 값을 출력하고, 그 값을 배열에서 제거합니다. ( 절댓값이 가장 작은 값이 여러개일 때는, 그 중 가장 작은 수를 출력하고, 그 값을 배열에서 제거합니다. ) 비어있는 배열에서 시작하여 입력된 연산을 실행하는 프로그램을 작성해보세요. 2. 풀이 자바하면 클래스 어렵게 생각하지 말고 필요하다면 클래스를 구현해서 사용하라 절댓값을 만드는 클래스를 구현해야하는데, 문제는 절댓값을 기준으로 오름차순 정렬을 할 수 있어야하고 중요한건 절댓값만 저장하는게 아니라 원본도 저장해야한다. 그래야 우선순위 큐에서 출력할때 원본값을 출력할 수 있으니까 import java.util.Scanner;..

자바에서 배열의 한 원소로 튜플을 활용하고 싶다면..

1. 문제 양의 정수를 원소로 갖는 길이가 N인 수열이 입력으로 주어졌을 때, 이 수열을 오름차순으로 정렬 했을 때 각각의 위치에 있던 원소가 어느 위치로 이동하는지 출력하는 코드를 작성 2. 풀이 배열을 정렬할때, 배열의 index도 동시에 움직여야하는데, 배열은 index랑 값을 동시에 활용할 수 없으니(동적 배열은 될 것 같기도하고...??) 배열의 값과 index를 동시에 가지는 새로운 클래스를 직접 정의하고 해당 클래스를 원소로 가지는 배열을 정렬하여 각 index가 정렬한 배열에서 어디에 위치하고 있는지 새로운 배열에 저장한 다음에 출력 import java.util.Scanner; import java.util.Arrays; class Tuple implements Comparable { i..

자바 초보부터 B형까지9 -class 생성하기 필수-

1. class 두 학생의 국어 영어 수학 점수가 (90,80,80), (80,70,60)이라고 한다면, 이를 코드로 표현한다면 어떻게 해야할까? 가장 쉬운 방법은 6개의 변수를 만드는 것이다. int kor1 = 90, eng1 = 80, math1 = 90; int kor2 = 80, eng2 = 70, math2 = 60; 하지만 학생 수가 많아질수록 변수의 수는 그만큼 증가하니 상당히 귀찮은 작업이 된다. 이런 경우 하나의 학생을 지칭하는 새로운 형태를 정의하며, 그 형태를 이루기 위한 (국어, 영어, 수학) 점수 세트를 정의할 수 있을 것이다. 이를 class라고 부르고 자바에서 class는 다음과 같이 정의할 수 있다. class Student { int kor, eng, math; publi..

2023. 2. 14. 04:13

자바 기본 배우기 -패키지와 import-

1. 패키지(package) PC의 많은 파일을 관리하기 위해 폴더를 이용 프로그램의 많은 클래스를 관리하기 위해 패키지를 이용 패키지도 결국 하나의 폴더 느낌.. 패키지는 클래스와 관련 있는 인터페이스들을 모아두기 위한 이름 공간 패키지의 구분은 .(dot) 연산자를 이용한다 패키지의 이름은 시중에 나와있는 패키지들과 구분되게 지어야 한다 보통은 소속이나 회사의 도메인을 이용한다고함 예를 들어 naver.com이 자기 회사 소속이라면,, 이를 뒤집어서 com.naver.(project_이름).(module_이름,class 이름,... 등등)으로 쓰는게 관례 Person.java랑 PersonTest.java로 서로 이름이 같은데 com.ssafy.class01, com.ssafy.class02로 서로 ..

자바 기본 배우기 -생성자란 무엇인가-

1. 생성자 인스턴스가 생성될 때 최초 한번 수행되는 함수 new 키워드와 함께 호출 클래스를 생성할 때 반드시 하나의 생성자를 호출 = 생성자는 여러개일 수 있다 성공적으로 실행되면 힙 영역에 객체 생성 후 객체의 주소가 리턴 필드의 초기화, 객체 생성 시 실행되어야 할 작업 작성 클래스 이름은 PascalCase로 작성하는 것이 관례이며, 생성자 이름은 클래스 이름과 동일하다 보니까 파이썬 __init__이랑 비슷함 2. 생성자의 특징 클래스와 이름이 대소문자도 모두 동일하다 반환타입이 없으며, void도 작성하지 않는다 필드의 초기화, 객체 생성 시 실행되어야 할 작업 작성 public class Dog { public Dog() { System.out.println("기본 생성자!"); Syste..

2023. 2. 12. 02:20

자바 기본 배우기 -메소드와 JVM의 메모리 구조-

1. 메소드(method) 객체가 할 수 있는 행동을 정의 어떤 작업을 수행하는 명령문의 집합에 이름을 붙여 놓은 것 이름은 소문자로 시작하고 camelCase로 작성하는 것이 관례 접근제한자에서 default의 경우 접근제한자로 아무것도 안쓰면 default return이 없으면 반환값 부분에는 void라고 써야함 매개변수들은 없어도 된다 1-1) 왜 작성하나? 반복적인 코드 사용을 줄인다, 코드 중복을 제거, 코드 양을 줄인다 유지보수가 좋다 1-2) 메소드 선언 {}안에 메소드가 해야할 일을 정의함 1-3) 호출 방법 (인스턴스이름).(메소드 이름)으로 접근 메소드가 static으로 선언되어 있다면, (클래스 이름).(메소드 이름)으로 접근 가능하다 public class Person { publi..