분류 전체보기 (222) 썸네일형 리스트형 백준 1463번 1로 만들기 자바 풀이 ❓문제 정수 X에 사용할 수 있는 연산은 다음과 같이 세 가지 이다. X가 3으로 나누어 떨어지면, 3으로 나눈다. X가 2로 나누어 떨어지면, 2로 나눈다. 1을 뺀다. 정수 N이 주어졌을 때, 위와 같은 연산 세 개를 적절히 사용해서 1을 만들려고 한다. 연산을 사용하는 횟수의 최솟값을 출력하시오. 🔠 입력 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. 🖨️출력 첫째 줄에 연산을 하는 횟수의 최솟값을 출력한다. ✍️ 예제 입력 2 ✔️ 예제 출력 1 ✍️ 예제 입력 10 ✔️ 예제 출력 3 💡해설 숫자 x를 입력받은 후 x에서 1로 만들 때 최소 횟수를 구하는 문제이다. 3으로 나누거나, 2로 나누거나, 1을 빼는 세 가지 경우의 수가 있다. 하향식으로 계산하는 것이 아.. linux grep 명령어 사용 방법 파일 내용찾기 # 파일 안에 Chapter라는 단어 찾기 % grep "Chapter" Gatsby.txt # 기본적으로 대소문자를 구분한다. % grep "Gatsby" Gatsby.txt # -i옵션 : 대소문자 구분없이 검색 % grep "chapter" Gatsby.txt -i # -w 단어만 정확하게 검색 # not search whatever, only ate % grep "ate" Gatsbytxt -w 재귀적 검색 # -r: 디렉터리 지정하지 않으면 현재 디렉터리에서 하위까지 검색 % grep -r "chicken" # a 혹은 e가 들어있는 단어 검색 # aeeapple / eggepple % grep -ri "egg[ae]pple" 백준 2839번 설탕배달 자바 풀이 ❓문제 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그램 봉지와 5킬로그램 봉지가 있다. 상근이는 귀찮기 때문에, 최대한 적은 봉지를 들고 가려고 한다. 예를 들어, 18킬로그램 설탕을 배달해야 할 때, 3킬로그램 봉지 6개를 가져가도 되지만, 5킬로그램 3개와 3킬로그램 1개를 배달하면, 더 적은 개수의 봉지를 배달할 수 있다. 상근이가 설탕을 정확하게 N킬로그램 배달해야 할 때, 봉지 몇 개를 가져가면 되는지 그 수를 구하는 프로그램을 작성하시오. 🔠 입력 첫째 줄에 N이 주어진다. (3 ≤ N ≤ 5000) 🖨️출력 상근이가 배달하는 봉지의 최소 개수를 출력한다. .. Jenkinsfile에서 gradle 빌드하기 ( docker 이미지로 ) Jenkinsfile에서 gradle빌드하는 방법은 일반적으로 jenkins서버에 gradle을 설치하고 사용하면 된다. 하지만 다양한 버전으로 빌드하기 위해서는 docker image를 이용하는 것이 좋다. node { stage('Build') { docker.image('gradle:6.9.2-jdk11-alpine').inside{ echo 'gradle build ..' sh 'echo $GRADLE_HOME' sh 'gradle --version' sh 'gradle clean bootJar' } } } 위의 스크립트처럼 docker.image를 이용해서 jenkins서버에 gradle 이미지를 받아서 빌드할 수 있다. 다만, docker를 사용하려면 jenkins서버에 docker가 되어야 .. Docker에 Jenkins설치 Docker에 Jenkins설치하는 방법이다. docker pull jenkins/jenkins Docker 에서 jenkins이미지를 다운받는다. docker run -itd -p8085:8080 -v /jenkins:/var/jenkins_home --name jenkins -u root -v /var/run/docker.sock:/var/run/docker.sock --privileged jenkins/jenkins docker를 실행한다. http://localhost:8085로 접속하면 비밀번호를 입력하라고 나온다. docker exec -it jenkins /bin/bash $cat /var/jenkins_home//secrets/initialAdminPassword 컨테이너에 접속해서 ini.. Dockerfile 내에서 gradle 빌드 후 spring boot 이미지 생성 (Multi Stage) 배포환경을 구성할 때 간혹 gradle의 다양한 버전을 이용해서 배포해야하는 경우가 있다. 서버에 세팅된 gradle 버전 말고 다른 버전을 사용해야 할 경우 젠킨스 플러그인 설치 말고 gradle이미지를 이용해서 빌드를 하고 이미지를 생성하는 방법을 사용할 수 있다. Docker Multi Stage 라고 한다. 하나의 Dockerfile안에서 빌드하고 실행이미지를 생성할 수 있다. 이전단계의 artifact를 복사해서 새로운 빌드단계에서 사용할 수 있다. Dockerfile FROM gradle:6.9.2-jdk11-alpine AS TEMP_BUILD_IMAGE WORKDIR /home/gradle/src/ COPY --chown=gradle:gradle . /home/gradle/src USER .. JUnit5에서 @Test expected 사용법 JUnit5에서 @Test(expected = Exception.class)가 없어졌다. 기존 Junit4에서 사용하는 방법 @Test(expected = NullPointerException.class) public void givenNull_whenThrowsErrorOnCreate_thenCorrect() { String name = null; Optional.of(name); } NullPointerException을 발생시켜야 테스트가 통과한다. Junit5에서 사용하는 방법 @Test void givenNull_whenThrowsErrorOnCreate_thenCorrect() { assertThrows(NullPointerException.class, ()->{ String name = nu.. 자바 인터페이스 추상클래스 차이점 쓰는 이유 자바에서는 추상메서드 형태로 생성해서 하위클래스에서 직접 메소드를 생성하는 추상클래스와 인터페이스가 있습니다. 비교가 많이 되는데 둘의 공통점은 추상메소드를 가지고 있다는 점입니다. 좀 더 자세히 알아보도록 하겠습니다. 추상클래스 클래스 내에 추상메소드가 하나 이상 포함되거나 클래스가 abstract로 정의된 경우를 추상클래스라고 합니다. 인터페이스 모든 메소드가 추상메소드로 이루어진 경우를 말합니다. (자바8부터는 default 키워드를 사용해서 일반 메소드 구현도 가능합니다.) 추상클래스와 인터페이스를 상속받은 클래스는 추상클래스 혹은 인터페이스에 있는 모든 추상메소드를 구현하도록 강제합니다. 두 가지 모두 추상메소드 구현을 강제한다면 추상클래스만 있어도 될 것 같은 느낌이 들죠? 그런데, 왜 두 가.. 이전 1 ··· 4 5 6 7 8 9 10 ··· 28 다음