본문 바로가기

java29

알고리즘 - 백트래킹&순열 몇 개의 원소를 뽑을 지에 대해서 고정된 문제라면 for문을 여러번 써서 구현할 수 있으나, 매번 뽑아야 하는 원소의 수가 변경되는 경우라면 이 방법이 불가하다. 순열을 구현할 수 있는 다양한 방법을 고려해보자. - swap 메서드를 활용한 순열 구현 import java.util.Arrays; public class 순열_swap { static int[] nums; //배열 static int N; public static void main(String[] args) { nums = new int[] {1,2,3}; N = nums.length; perm(0); } //idx : 현재 판단 하는 위치 public static void perm(int idx) { //기저조건 //N번째까지 판단을 다 .. 2023. 3. 27.
객체지향 프로그래밍 정리(Java, Class, 생성자, 인스턴스, 변수, 메서드, this) (아래 다 읽은 후 한번 더 읽어보기! )타입 : 메모리에 공간을 만드는 도장(각 타입별로 필요한 공간 찍어냄)변수 : 타입이 찍어낸 공간에 이름 붙인 후, 변수에 대입한 값이 heap에 저장되면 그 주소값 기억메소드 : 자꾸 반복해야 하는 작업을 일련의 과정으로 정의. 일부가 변화할 필요가 있다면 매개변수 지정.생성자 : 메소드의 특수한 형태로, 클래스를 호출하여 객체를 만들 때 객체 초기세팅에 이용. 리턴값에 대한 설정이 없고, 설정 안하면 기본 셋팅된다는 특이점 존재.클래스 : 관련있는 변수와 메소드를 묶어놓은 묶음 도장.특히 데이터와 밀접한 연관이 있는 메소드는 데이터와 클래스를 묶어서 만들면 사용하기 좋음. 만들어놓고 자료형으로 사용. (String이나 Scanner 떠올려보기) 객체지향 프로그.. 2023. 3. 23.
[Java] Comparable, Comparator 알아보기 본 게시물에서는 Comparable과 Comparator에 대해 알아보려 한다. Comparable과 Comparator는 모두 인터페이스(Interface)이며 객체를 비교하기 위해 사용한다. 이 둘 모두 인터페이스인 관계로, 사용하기 위해서는 각각에 선언된 메소드를 반드시 구현해야한다. 어떤 메서드를 구현해야 하는지, 어떤 차이가 있는지, 사용하는 방법은 무엇인지 자세히 알아보자. 1. Comparable 주로 객체의 자연스러운 순서를 정의할 때 사용된다. 따라서 객체의 비교를 구현하고 싶을 때(객체 자체가 정렬 가능해지도록 하고 싶을 때)나 클래스를 수정할 수 있는 경우에 사용한다. 그럼 Java 공식 API문서에 Comparable을 찾아보자. https://docs.oracle.com/en/ja.. 2023. 3. 23.
(Java) SWEA 1860. 진기의 최고급 붕어빵 풀이(2023-02-24) 1. 문제 조건 분석하기 진기가 M초마다 K개씩 만드는 붕어빵을 N명에게 판매. N명은 입력된 숫자의 시간에 도착하며 기다리지 않고 받아갈 수 있다면 Possible, 불가능하면 Impossible 출력할 것. 2. 아이디어 1) 카운팅 배열을 만든 후 사람이 들어오는 시간을 index로 하여 max시간까지 만든 붕어빵을 값으로 더한다. 그리고 누적합 시킨다. 그 후, 입력값을 돌며 해당 시간에 들어온 사람만큼 붕어빵을 빼준다.( 이 때, 배열에서 끝까지 빼주지 않으면 앞에서 사간 붕어빵이 그 시간 이후에 반영되지 않으므로 주의해야 한다.) => 사람이 들어온 시간을 정렬시켜 시간 순으로 빼주고 뺄 때마다 붕어빵 개수가 0보다 작아졌는지 확인후 작아졌으면 Impossible을 다 돌고도 문제가 없었으면 .. 2023. 2. 26.
Spring - Section 1강의 실습 기록(2022-02-22 ~ 2022-02-23) 같은 반 친구들과 인프런의 김영한 선생님의 Spring 강의를 선수강해, 예습을 하기로 했다. 한 번도 접해보지 못한 프론트 수업을 들었을 때, 많이 버벅거리고 버거워했던 기억이 있어서 냉큼 그 스터디에 올라탔다. 처음에는 블로그에 강의를 수강한 과정을 기록할 생각 없이 듣기 시작했다. 그런데, 평소 이클립스만 쓰다가 인텔리제이를 쓰려니 낯설고 어려운 부분이 많았고 어제 해결한 오류를 오늘은 또 기억 못하는 내 모습을 보고 블로그에 기록을 좀 해놓기로 결심했다. 누군가에게 도움이 될 수도 있고, 또 매일매일 머리에 수많은 정보들을 밀어 넣느라 가볍게 여기고 놓친 부분들을 훗날 복습하기에도 좋겠다는 생각이 들었기 때문이다. 1. 인텔리제이 설치하기 https://www.jetbrains.com/ko-kr/.. 2023. 2. 24.
Java - 기본문법 (변수, 자료형, 형변환, 연산자) 1. 변수 - 데이터를 저장할 때 메모리의 위치를 나타내는 이름으로, 메모리 상에 데이터를 보관할 수 있는 공간을 확보한다. - 적절한 메모리 공간을 마련하기 위해 Java에서는 변수의 타입을 지정해줘야 한다. - 할당 연산자('=')를 통해 변수에 데이터의 주소를 대입한다. - Java에서 변수명은 변수 작명 규칙을 따라야 하며, 작명 규치은 아래와 같다. - 변수 작명 규칙 - 자바 예약어 목록 2. 자료형 - Java에서 변수가 선언될 때 반드시 함께 지정되야 하며 변수에 담길 데이터의 종류를 의미한다. - 변수가 선언될 때 해시맵에 변수에 담길 데이터가 들어갈 메모리 공간을 마련하는데, 이 메모리의 크기를 얼마나 잡아둘 지를 지정해 준다. - Java에는 기본 자료형과 참조 자료형이 있다. 1) .. 2023. 2. 15.