자바

프로그래머스

[JAVA] 프로그래머스 최소직사각형

문제 설명 명함 지갑을 만드는 회사에서 지갑의 크기를 정하려고 합니다. 다양한 모양과 크기의 명함들을 모두 수납할 수 있으면서, 작아서 들고 다니기 편한 지갑을 만들어야 합니다. 이러한 요건을 만족하는 지갑을 만들기 위해 디자인팀은 모든 명함의 가로 길이와 세로 길이를 조사했습니다. 아래 표는 4가지 명함의 가로 길이와 세로 길이를 나타냅니다. 명함번호 가로길이 세로길이 1 60 50 2 30 70 3 60 30 4 80 40 가장 긴 가로 길이와 세로 길이가 각각 80, 70이기 때문에 80(가로) x 70(세로) 크기의 지갑을 만들면 모든 명함들을 수납할 수 있습니다. 하지만 2번 명함을 가로로 눕혀 수납한다면 80(가로) x 50(세로) 크기의 지갑으로 모든 명함들을 수납할 수 있습니다. 이때의 지..

프로그래머스

[JAVA] 프로그래머스 K번째수

문제설명 배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수를 구하려 합니다. 예를 들어 array가 [1, 5, 2, 6, 3, 7, 4], i = 2, j = 5, k = 3이라면 array의 2번째부터 5번째까지 자르면 [5, 2, 6, 3]입니다. 1에서 나온 배열을 정렬하면 [2, 3, 5, 6]입니다.\ 2에서 나온 배열의 3번째 숫자는 5입니다. 배열 array, [i, j, k]를 원소로 가진 2차원 배열 commands가 매개변수로 주어질 때, commands의 모든 원소에 대해 앞서 설명한 연산을 적용했을 때 나온 결과를 배열에 담아 return 하도록 solution 함수를 작성해주세요. 제한사항 array의 길이는 1 이상 100 이하입니다. a..

CS공부

[JAVA] Enum(열거형) 개념과 예제

Enum 이란?enum은 'Enumeration' 의 약자로 열거, 목록 이라는 뜻을 가지고 있다. 말 그대로 관련있는 상수들의 집합이며 JAVA에서는 final로 String, int 등을 나타내는 일정 개수의 기본 자료형의 값을 고정할 수 있다. 예를 들어 요일, 계절, 과목 등을 나타낼 때 쓰일 수 있다. Enum 장점허용 가능한 값을 제한 할 수 있다.수정 시 변경 범위가 최소화 된다. (enum만 수정하면 됨)컴파일 시 데이터 타입 및 유효성 체크를 할 수 있다.코드가 단순해지고 가독성이 좋아진다.인스턴스의 생성과 상속을 방지하여 상수값의 안전성이 보장된다. Enum 구현1. enum 안의 값 꺼내오기 Day.java (Enum 키워드)public enum Day { MONDAY, TUESDAY..

CS공부

[JAVA] 싱글톤 패턴 (Singleton Pattern) 개념과 예제

싱글톤 패턴이란대표적인 디자인 패턴 중 하나로 한 클래스에 한 인스턴스를 가지는 패턴이다. 소프트웨어 디자인 패턴에서 싱글턴 패턴(Singleton pattern)을 따르는 클래스는, 생성자가 여러 차례 호출되더라도 실제로 생성되는 객체는 하나이고 최초 생성 이후에 호출된 생성자는 최초의 생성자가 생성한 객체를 리턴한다. - 출처 : 위키백과 - 싱글턴 패턴 생성된 인스턴스를 기반으로 다른 모듈에서 공유, 접근하여 사용할 수 있다. 주로 공통된 객체를 여러개 생성해서 사용하는 경우에 쓰이며 대표적으로 데이터베이스 연결 모듈 (DBCP) 가 있다. 싱글톤 패턴의 장점이미 완성된 인스턴스를 기반으로 로직을 짜는 것이기 때문에 비용이 줄어든다. static으로 별도로 고정 메모리 영역을 만든 뒤 인스턴스를 공..

CS공부

[JAVA] 큐(Queue) 클래스 및 메서드 총정리

큐(QUEUE) 란? 사전적인 의미로 '대기줄' 이라는 의미를 가지고 있다. 큐는 스택과 다르게 포인터가 두군데가 있는데 삽입 연산만 수행되는 rear 와 삭제 연산만 수행되는 front 가 있다. 제일 먼저 들어온 데이터가 가장 먼저 나가는 구조로 FIFO (First In First Out) 이다. 사용예시 은행창구 번호표 대기 프린터 출력 컴퓨터 운영체제의 테스크 스케쥴링 너비 우선 탐색 선언방법 Queue queue = new LinkedList(); queue는 인터페이스만 존재하고 별도의 클래스가 없기 때문에 LinkedList 를 이용한다. 메소드 add(E) 값 추가 성공 시 true, 실패 시 false 반환 저장공간이 부족하면 IllegalStateException 반환 offer(E)..

CS공부

[JAVA] 스택(Stack) 클래스 및 메서드 총정리

1. Stack 이란? 2. Stack 사용 예시 3. 선언 방법 3-1 메서드 | Stack 이란? 스택은 '쌓아놓은 더미' 라는 뜻으로 데이터를 차례대로 쌓아두는 모양이다. 스택은 한쪽 끝에서 push() 해서 밀어넣고, 끝에서 부터 pop() 하여 꺼내는 LIFO(후입선출, Last In First Out)이다. 즉, 마지막에 넣은 데이터가 가장 먼저 나오는 형태이다. | Stack 사용 예시 웹 브라우저 방문기록(뒤로가기) 실행 취소(undo) 역순 문자열 만들기 후위 표기법 계산 깊이우선탐색 | 선언 방법 Stack stack = new Stack(); | 메서드 push(E) 값 추가 peek() 가장 상단 값 반환 pop() 가장 상단 값 반환 & 제거 clear() 전체 값 제거 (반환x)..

프로그래머스

[JAVA] 프로그래머스 같은 숫자는 싫어

문제 설명 배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은 수들을 반환할 때는 배열 arr의 원소들의 순서를 유지해야 합니다. 예를 들면, arr = [1, 1, 3, 3, 0, 1, 1] 이면 [1, 3, 0, 1] 을 return 합니다. arr = [4, 4, 4, 3, 3] 이면 [4, 3] 을 return 합니다. 배열 arr에서 연속적으로 나타나는 숫자는 제거하고 남은 수들을 return 하는 solution 함수를 완성해 주세요. 제한사항 배열 arr의 크기 : 1,000,000 이하의 자연수 배열 arr의 원소의 크기 : 0보다 크거나 ..

프로그래머스

[JAVA] 프로그래머스 의상

문제 설명 코니는 매일 다른 옷을 조합하여 입는것을 좋아합니다. 예를 들어 코니가 가진 옷이 아래와 같고, 오늘 코니가 동그란 안경, 긴 코트, 파란색 티셔츠를 입었다면 다음날은 청바지를 추가로 입거나 동그란 안경 대신 검정 선글라스를 착용하거나 해야합니다. 얼굴 동그란 안경, 검정 선글라스 상의 파란색 티셔츠 하의 청바지 겉옷 긴 코트 코니는 각 종류별로 최대 1가지 의상만 착용할 수 있습니다. 예를 들어 위 예시의 경우 동그란 안경과 검정 선글라스를 동시에 착용할 수는 없습니다. 착용한 의상의 일부가 겹치더라도, 다른 의상이 겹치지 않거나, 혹은 의상을 추가로 더 착용한 경우에는 서로 다른 방법으로 옷을 착용한 것으로 계산합니다. 코니는 하루에 최소 한 개의 의상은 입습니다. 코니가 가진 의상들이 담..

DEV장화
'자바' 태그의 글 목록