분류 전체보기 306

[백준] 2580번 자바 스도쿠

문제 출처 https://www.acmicpc.net/problem/2580 2580번: 스도쿠 스도쿠는 18세기 스위스 수학자가 만든 '라틴 사각형'이랑 퍼즐에서 유래한 것으로 현재 많은 인기를 누리고 있다. 이 게임은 아래 그림과 같이 가로, 세로 각각 9개씩 총 81개의 작은 칸으로 이루어진 정사각형 판 위에서 이뤄지는데, 게임 시작 전 몇 몇 칸에는 1부터 9까지의 숫자 중 하나가 쓰여 있다. 나머지 빈 칸을 채우는 방식은 다음과 같다. 각각의 가로줄과 세로줄에는 1부터 9까지의 숫자가 한 번씩만 나타나야 한다. 굵은 선으로 구분되어 있는 3 www.acmicpc.net 접근 방식 및 풀이 - 백트래킹 + DFS 문제 - N-Queen (백준 9663번)과 비슷한 문제 - 백트래킹 3가지 조건 :..

[알고리즘][코딩 인터뷰 완전 분석 정리] 03 스택과 큐

스택 구현하기 LIFO (Last In First Out)에 따라 자료를 배열함. 접시를 쌓아두는 것과 비슷한 구조 스택 연산 pop() : 스택에서 가장 위에 있는 항목을 제거함. push(item) : item 하나를 스택의 가장 윗 부분에 추가함. peek() : 스택의 가장 위에 있는 항목을 반환. isEmpty() : 스택이 비어 있을때에 true를 반환. 배열과 달리 상수 시간에 i번째 항목에 접근할 수 없다.하지만 스택에서 데이터를 추가하거나 삭제하는 연산은 상수시간에 가능함. 배열처럼 원소들을 하나씩 옆으로 밀어줄 필요가 없다. 재귀알고리즘을 사용할 때 유용하게 사용가능. 큐 구현하기 FIFO(First In First Out)에 따라 자료를 배열. 매표소 앞에 서 있느 사람들이 움직이는 ..

Study/Alogorithm 2020.05.09

[백준] 9095번 자바 1,2,3 더하기

문제 출처 https://www.acmicpc.net/problem/9095 9095번: 1, 2, 3 더하기 문제 정수 4를 1, 2, 3의 합으로 나타내는 방법은 총 7가지가 있다. 합을 나타낼 때는 수를 1개 이상 사용해야 한다. 1+1+1+1 1+1+2 1+2+1 2+1+1 2+2 1+3 3+1 정수 n이 주어졌을 때, n을 1, 2, 3의 합으로 나타내는 방법의 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 정수 n이 주어진다. n은 양수이며 11보다 작다. 출력 각 www.acmicpc.net 접근 방식 및 풀이 - 다이나믹 프로그래밍 (DP) 의 기본 문제 - 재 사용할수 있는 부분을 구하여, 그다음 숫자..

[알고리즘][코딩 인터뷰 완전 분석 정리] 02 연결리스트

연결리스트 개요 차례로 연결된 노드를 표현해주는 자료구조. 다음 주소값을 가지고 있는 데이터 구조. 단방향/양방향 연결리스트 속도가 느릴 순 있다. K번째 원소를 찾고 싶다면 처음부터 K번 루프를 돌아야함. 장점은 리스트의 시작 지점에서 아이템을 추가하거나 삭제하는 연산을 상수 시간에 할 수 있다. 길이가 정해지지 않은 데이터를 핸들링할때는 OK (cf . 배열은 크기가 정해져 있다.) 연결리스트 만들기 LinkedList 구조를 사용하지 않고 연결리스트에 접근할 때 head 노드의 주소를 참조하는 방법. Class Node{ Node next = null; int data; public Node(int d){ data = d; } void appendToTail(int d){ Node end = new..

Study/Alogorithm 2020.05.07

[Youtube][이팩티브 자바] #3 싱글톤을 만드는 여러가지 방법 그중에 최선은?

백기선님의 유투브 강의 내용을 정리하였습니다. 백기선님 Github 바로가기 Youtube 바로가기 강의내용 필기 주제 3: private 생성자 또는 enum 타입을 사용해서 싱글톤으로 만들 것. 오직 한 인스턴스만 만드는 클래스를 싱글톤이라 부른다. 보통 함수 같은 Stateless 객체 또는 본질적으로 유일한 시스템 컴포넌트를 그렇게 만든다. 싱글톤은 패턴의 이름. 애플리케이션을 통틀어서 패턴에 인스턴스가 하나만 사용되는 것. 싱글톤을 사용하는 클라이언트 코드를 테스트 하는게 어렵다. 싱글톤이 인터페이스를 구현한게 아니라면 mock으로 교체하는게 어렵기 때문이다. 싱글톤으로 만드는 두가지 방법이 있는데, 두 방법 모두 생성자를 prirvate으로 만들고 public static 멤버를 사용해서 유일..

Programming/Java 2020.05.06

[Youtube][이팩티브 자바] #2 생성자 매개변수가 너무 많아? 빌더 패턴을 써 봐

백기선님의 유투브 강의 내용을 정리하였습니다. 백기선님 Github 바로가기 Youtube 바로가기 강의내용 필기 주제 2: 생성자 매개 변수가 많은 경우에 빌더 패턴 사용을 권장 static 팩토리 메소드와 public 생성자 모두 매개변수가 많이 필요한 경우에 불편해진다. NutritiaonFatc 라는 클래스를 예를 들고있다. 해당 클래스는 몇몇 반드시 필요한 빌드(반드시 셋팅이 되어야하는..)와 부가적인 필드(셋팅이 되지 않아도 되는..)를 가질 수 있는데, 그런 경우에 필수적인 매개변수를 생성자에 부가적인 필드를 하나씩 추가하여 여러 생성자를 만들 수 있다. 해결책 1: 생성자 public class NutritionFacts { private int servingSize; private int..

Programming/Java 2020.05.06

[Youtube][이팩티브 자바] #1 생성자 대신 static 팩토리 메소드를 고려해 볼 것

백기선님의 유투브 강의 내용을 정리하였습니다. 백기선님 Github 바로가기 Youtube 바로가기 강의내용 필기 Item 1. 생성자 대신 static 팩토리 메소드를 고려해 볼 것. public 생성자를 사용해서 객체를 생성하는 전통적인 방법 말고, 아래와 같이 public static 팩토리 메소드를 사용해서 해당 클래스의 인스턴스를 만드는 방법도 있다. public static Boolean valueOf(boolean b) { return b ? Boolean.TRUE : Boolean.FALSE; } 이런 방법에는 각각 장단점이 있는데 아래 장점 5가지, 단점 2가지로 정리하였다. 장점 1. 이름을 가질 수 있다. 생성자는 만들면 보통 클래스 이름과 동일하게 만들어야 한다. # public 생..

Programming/Java 2020.05.06

[kafka] spring kafka vs kafka clients

Java 기반 어플리케이션으로 kafka를 적용할때 사용하는 라이브러리는 spring kafka vs kafka clients 2가지가 있다. spring-kafka는 kafka-clients보다 레퍼런스가 풍부하며, 고수준의 라이브러리로 사용자가 사용하기 편리한 장점이 있다. kafka clients는 저수준의 라이브러리로 사용자가 직접 Configuration을 해줘야하며, spring-kafka : springboot 기반으로 편리하게 사용가능 spring-kafka가 Spring 기반으로 미리 등록된 빈으로 활용하여 환경설정이나 Consumer, Producer 기능을 비교적 쉽게 구현할 수 있다. 아래는 Consumer, Producer 환경 설정의 예시 코드 이다. ① pom.xml에 spri..

Programming/Kafka 2020.05.06

[zookeeper] zookeeper 실행시 session request 무한 루프

zookeeper 실행시 session request가 무한 루프 돌고 있다.. 아무리 다시 연결하려고 해도 아래와 같이 무한루프라면 zookeeper 중단시 강제종료(ctrl + c)를 실행하여 이전에 띄었던 zookeeper와 충돌할 경우 발생한 것으로 판단된다. ................ [2020-05-06 15:09:51,701] INFO Server environment:java.io.tmpdir=C:\Users\log\AppData\Local\Temp\ (org.apache.zookeeper.server.ZooKeeperServer) [2020-05-06 15:09:51,703] INFO Server environment:java.compiler= (org.apache.zookeeper...

Programming/Kafka 2020.05.06

[Docker] 용어정리 Docker-Registry

도커 레지스트리(Docker-Registry) 도커 공식 다큐먼트 정의 도커 레지스트리는 도커 이미지를 저장한다. 도커 허브는 누구나 사용할 수 있는 공적인 레지스트리이고, 기본적으로 도커 허브에 있는 이미지를 찾을 수 있도록 구성되어 있다. 당신은 당신 고유의 priavte한 레지스트리를 운영할 수 있다. 너가 도커 데이터센터(Docker Datacenter-DDC)를 사용한다면, 그것은 DTR(Docker Trusted Registry)에 포함된다. docker registry의 기본적인 데이터 디렉토리 위치는 /var/lib/registry 해당 경로는 registry config 파일을 수정하여 변경 가능. 최초 registry를 구동한 시점에서는 해당 경로에 기본적으로 생성되는 파일이나 디렉토리..

Programming/Server 2020.05.06