분류 전체보기

· Java/BOJ
문제 https://www.acmicpc.net/problem/1863 1863번: 스카이라인 쉬운거 첫째 줄에 n이 주어진다. (1 ≤ n ≤ 50,000) 다음 n개의 줄에는 왼쪽부터 스카이라인을 보아 갈 때 스카이라인의 고도가 바뀌는 지점의 좌표 x와 y가 주어진다. (1 ≤ x ≤ 1,000,000. 0 ≤ y ≤ 500,000) 첫 www.acmicpc.net 풀이 스택 자료구조를 활용한 문제입니다. stack에는 순서대로 들어오는 각 층을 쌓습니다. 여기서 조건을 잘 정리해야합니다. 우선, 스택이 비어있거나 stack의 peek이 들어올 y좌표보다 작을 때는 push를 합니다. 만약 peek이 크다면, peek이 y좌표보다 작을때마다 pop을 수행하고 pop 개수는 건물의 개수가 됩니다. 그리..
JaCoCo는 Java 코드의 커버리지를 체크해주는 라이브러리입니다. JaCoCo를 통해 테스트 결과가 커버리지 기준을 충족하지 못하면 프로젝트 빌드가 실패하도록 설정할 수 있습니다. 또 테스트 커버리지 결과를 html 등의 리포트로 확인할 수 있습니다. 리팩토링 중인 프로젝트에 Jacoco를 도입해보았습니다. JaCoCo 공식 문서와 우아한 기술 블로그(Gradle 프로젝트에 JaCoCo 설정하기) 를 참고했습니다. JaCoCo 플러그인 추가 우선 저는 Gradle 프로젝트에 해당 라이브러리를 추가했습니다. build.gradle 설정에 아래 코드를 추가합니다. plugins { id 'java' ... id 'jacoco' } jacoco { //JaCoCo 버전 (최신) toolVersion = "..
ArrayDeque (Java Platform SE 8 )Resizable-array implementation of the Deque interface. Array deques have no capacity restrictions; they grow as necessary to support usage. They are not thread-safe; in the absence of external synchronization, they do not support concurrent access by multidocs.oracle.com java 공식 문서에서 ArrayDeque를 보면, 아래와 같은 문구를 확인할 수 있습니다.  ArrayDeque는 stack으로 사용될 때는 Stack보다 빠르고, q..
이번 포스팅에서는 JCF에서 LinkedList와 ArrayDeque가 어떻게 구현되어 있는지 살펴보겠습니다. 1.  ArrayDeque개념  Deque는 Double-Ended Queue의 줄임말로 큐의 양쪽에서 데이터를 삽입과 삭제를 할 수 있는 자료구조를 의미합니다. 그리고 이 Deque 인터페이스를 구현하는 클래스가 ArrayDeque입니다.  JCF에서 어떻게 구현되어 있나?  elements와 head, tailpublic class ArrayDeque extends AbstractCollection implements Deque, Cloneable, Serializable{ transient Object[] elements; // non-p..
프로젝트 리팩토링 도중, 이틀을 고민한 부분이 있습니다. 바로 DTO가 어느 계층까지 내려와야하는 것인지에 대한 고민이었습니다. 지나고보니 그렇게까지 오래 고민할 필요는 없는 것 같지만..? 고민했던 부분들이 누군가에겐 도움이 되었으면 하는 바람에 이 글을 쓰게 되었습니다.  결론부터 말하면, 정해진 정답은 없다는 것입니다. 개발하는 서비스마다 다르고, 같은 서비스에서도 기능마다 다를 수 있습니다.  1. DTO란?우선 DTO란 계층간 데이터 교환을 위해 사용하는 객체입니다. 이때 계층은 Presentation(View, Controller), Business(Service), Persistence(DAO, Repository)로 나뉘게 됩니다. 스프링 프레임워크에 익숙한 개발자들은 보통 Controll..
지난 포스팅에서 JCF를 다루었습니다. 이번 포스팅에서는 JCF의 ArrayList에 대해 살펴보겠습니다. ArrayList와 LinkedList 차이우선, ArrayList와 LinkedList의 개념적인 차이를 통해 ArrayList를 살펴보겠습니다. ArrayListArrayList는 데이터들이 쭉 늘어선 배열의 형식입니다.  ArrayList는 데이터의 인덱스를 가지고 있어서, 탐색(시간 복잡도: O(1))이 매우 용이하지만 데이터의 삽입과 삭제에서는 인덱스들의 위치를 조절해주어야 하기 때문에 O(n)의 시간 복잡도를 가집니다.  LinkedList 반면, LinkedList는 자료의 주소값으로 서로 연결되어있는 구조입니다. 내부적으로 양방향의 연결리스트로 구현되어있습니다. 탐색 시에 순차적으로 ..
동구름이
'분류 전체보기' 카테고리의 글 목록 (10 Page)