본문 바로가기

전체 글86

[Kotlin] 프로그래머스 > 코딩테스트 연습 > 정렬 > 가장 큰 수 문제 설명 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 수는 6210입니다. 0 또는 양의 정수가 담긴 배열 numbers가 매개변수로 주어질 때, 순서를 재배치하여 만들 수 있는 가장 큰 수를 문자열로 바꾸어 return 하도록 solution 함수를 작성해주세요. 제한 사항 numbers의 길이는 1 이상 100,000 이하입니다. numbers의 원소는 0 이상 1,000 이하입니다. 정답이 너무 클 수 있으니 문자열로 바꾸어 return 합니다. 입출력 예 numbers return [6, 10, .. 2021. 4. 1.
[Kotlin] 프로그래머스 > 코딩테스트 연습 > 깊이/너비 우선 탐색(DFS/BFS) > 타겟 넘버 문제 설명 n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+1 = 3 +1+1-1+1+1 = 3 +1+1+1-1+1 = 3 +1+1+1+1-1 = 3 사용할 수 있는 숫자가 담긴 배열 numbers, 타겟 넘버 target이 매개변수로 주어질 때 숫자를 적절히 더하고 빼서 타겟 넘버를 만드는 방법의 수를 return 하도록 solution 함수를 작성해주세요. 제한사항 주어지는 숫자의 개수는 2개 이상 20개 이하입니다. 각 숫자는 1 이상 50 이하인 자연수입니다. 타겟 넘버는 1 이상 1000 이하인 자연수입니다. .. 2021. 4. 1.
[Kotlin] 프로그래머스 > 코딩테스트 연습 > 완전탐색 > 카펫 문제 설명 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 갈색으로 색칠된 격자의 개수는 기억했지만, 전체 카펫의 크기는 기억하지 못했습니다. Leo가 본 카펫에서 갈색 격자의 수 brown, 노란색 격자의 수 yellow가 매개변수로 주어질 때 카펫의 가로, 세로 크기를 순서대로 배열에 담아 return 하도록 solution 함수를 작성해주세요. 제한사항 갈색 격자의 수 brown은 8 이상 5,000 이하인 자연수입니다. 노란색 격자의 수 yellow는 1 이상 2,000,000 이하인 자연수입니다. 카펫의 가로 길이는 세로 길이와 같거나, 세로 길이보다 .. 2021. 4. 1.
[Kotlin] 프로그래머스 > 코딩테스트 연습 > 정렬 > H-index 문제 설명 H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다. 어떤 과학자가 발표한 논문 n편 중, h번 이상 인용된 논문이 h편 이상이고 나머지 논문이 h번 이하 인용되었다면 h의 최댓값이 이 과학자의 H-Index입니다. 어떤 과학자가 발표한 논문의 인용 횟수를 담은 배열 citations가 매개변수로 주어질 때, 이 과학자의 H-Index를 return 하도록 solution 함수를 작성해주세요. 제한사항 과학자가 발표한 논문의 수는 1편 이상 1,000편 이하입니다. 논문별 인용 횟수는 0회 이상 10,000회 이하입니다. 입출력 예 citations ret.. 2021. 4. 1.
[Kotlin] 프로그래머스 > 코딩테스트 연습 > 탐욕법(Greedy) > 체육복 문제 설명 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번호의 학생이나 바로 뒷번호의 학생에게만 체육복을 빌려줄 수 있습니다. 예를 들어, 4번 학생은 3번 학생이나 5번 학생에게만 체육복을 빌려줄 수 있습니다. 체육복이 없으면 수업을 들을 수 없기 때문에 체육복을 적절히 빌려 최대한 많은 학생이 체육수업을 들어야 합니다. 전체 학생의 수 n, 체육복을 도난당한 학생들의 번호가 담긴 배열 lost, 여벌의 체육복을 가져온 학생들의 번호가 담긴 배열 reserve가 매개변수로 주어질 때, 체육수업을 들을 수 있는 학생의 최댓값을 return 하도록 solution 함수를.. 2021. 4. 1.
[Kotlin] 프로그래머스 > 코딩테스트 연습 > 힙(Heap) > 이중우선순위큐 문제 설명 이중 우선순위 큐는 다음 연산을 할 수 있는 자료구조를 말합니다. 명령어 수신 탑(높이) I 숫자 큐에 주어진 숫자를 삽입합니다. D 1 큐에서 최댓값을 삭제합니다. D -1 큐에서 최솟값을 삭제합니다. 이중 우선순위 큐가 할 연산 operations가 매개변수로 주어질 때, 모든 연산을 처리한 후 큐가 비어있으면 [0,0] 비어있지 않으면 [최댓값, 최솟값]을 return 하도록 solution 함수를 구현해주세요. 제한 사항 operations는 길이가 1 이상 1,000,000 이하인 문자열 배열입니다. operations의 원소는 큐가 수행할 연산을 나타냅니다. 원소는 “명령어 데이터” 형식으로 주어집니다.- 최댓값/최솟값을 삭제하는 연산에서 최댓값/최솟값이 둘 이상인 경우, 하나만 삭.. 2021. 4. 1.
[Kotlin] 프로그래머스 > 코딩테스트 연습 > 해시 > 위장 문제 설명 스파이들은 매일 다른 옷을 조합하여 입어 자신을 위장합니다. 예를 들어 스파이가 가진 옷이 아래와 같고 오늘 스파이가 동그란 안경, 긴 코트, 파란색 티셔츠를 입었다면 다음날은 청바지를 추가로 입거나 동그란 안경 대신 검정 선글라스를 착용하거나 해야 합니다. 종류 이름 얼굴 동그란 안경, 검정 선글라스 상의 파란색 티셔츠 하의 청바지 겉옷 긴 코트 스파이가 가진 의상들이 담긴 2차원 배열 clothes가 주어질 때 서로 다른 옷의 조합의 수를 return 하도록 solution 함수를 작성해주세요. 제한사항 clothes의 각 행은 [의상의 이름, 의상의 종류]로 이루어져 있습니다. 스파이가 가진 의상의 수는 1개 이상 30개 이하입니다. 같은 이름을 가진 의상은 존재하지 않습니다. cloth.. 2021. 4. 1.
[Kotlin] 프로그래머스 > 코딩테스트 연습 > 탐욕법(Greedy) > 큰 수 만들기 문제 설명 어떤 숫자에서 k개의 수를 제거했을 때 얻을 수 있는 가장 큰 숫자를 구하려 합니다. 예를 들어, 숫자 1924에서 수 두 개를 제거하면 [19, 12, 14, 92, 94, 24] 를 만들 수 있습니다. 이 중 가장 큰 숫자는 94 입니다. 문자열 형식으로 숫자 number와 제거할 수의 개수 k가 solution 함수의 매개변수로 주어집니다. number에서 k 개의 수를 제거했을 때 만들 수 있는 수 중 가장 큰 숫자를 문자열 형태로 return 하도록 solution 함수를 완성하세요. 제한 조건 number는 1자리 이상, 1,000,000자리 이하인 숫자입니다. k는 1 이상 number의 자릿수 미만인 자연수입니다. 입출력 예 number k return "1924" 2 "94" .. 2021. 4. 1.
[Java] 프로그래머스 > 코딩테스트 연습 > 스택/큐 > 주식가격 문제 설명 초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. 제한사항 prices의 각 가격은 1 이상 10,000 이하인 자연수입니다. prices의 길이는 2 이상 100,000 이하입니다. 입출력 예 prices return [1, 2, 3, 2, 3] [4, 3, 1, 1, 0] 입출력 예 설명 1초 시점의 ₩1은 끝까지 가격이 떨어지지 않았습니다. 2초 시점의 ₩2은 끝까지 가격이 떨어지지 않았습니다. 3초 시점의 ₩3은 1초뒤에 가격이 떨어집니다. 따라서 1초간 가격이 떨어지지 않은 것으로 봅니다. 4초 시점의 ₩2은 1초간 가격이 떨어지지 않았습니다. 5초 시점의 ₩3은.. 2021. 4. 1.
Kafka retention 옵션 - log 보관 주기 설정 Kafka log(Message Data)의 보관은 크게 시간단위, 용량단위로 지정할 수 있다. 만약 아무런 옵션을 수정하지 않고 Kafka를 실행하였다면 기본적으로 7일로 지정된 상태이다. - 저장한지 7일이 지난 로그는 삭제된다. log 보관주기에 대한 설정은 $KAFKA_HOME/config/server.properties에 있으며 아래와 같은 기본값을 가진다. ############################# Log Retention Policy ############################# # The following configurations control the disposal of log segments. The policy can # be set to delete segment.. 2020. 12. 2.
CentOS8에서 Dockerfile build시 DNS Not Resolving under Network 에러 해결: 방화벽 설정 바꾸기 CentOS8에서 처음 docker, docker-compose를 설치한 후 Dockerfile을 빌드할 때 DNS 어쩌고 에러가 발생한다. 나 같은 경우는 Dockerfile에서 아래 구문을 빌드할 때 자꾸 에러가 발생했었는데, 처음에는 네트워크 문제인 줄도 모르고 이 구문에 에러가 있는 줄 알고 한참을 헤맸다. 다른 서버에서는 잘만 빌드되던 게 왜 안 되는 거야(ㅠㅠ) 하면서! RUN apt-get -y update && apt-get install -y \ openjdk-8-jdk Err:1 http://archive.ubuntu.com/ubuntu xenial InRelease Temporary failure resolving 'archive.ubuntu.com' Err:2 http://archi.. 2020. 8. 8.
Kafka topic 삭제 - already marked for deletion 해결 토픽을 삭제하기 위해서는 우선 $KAFKA_HOME/config/server.properties에 delete.topic.enable 설정을 추가한 후 카프카를 재기동해야한다. delete.topic.enable = true 만약 이 설정을 추가하지 않은 상태에서 일반적으로 알려진 토픽 삭제 방법인 kafka-topics.sh을 이용해서 토픽을 삭제하면 아래와 같이 already marked for deletion이라는 메시지만 나타나고 정상적으로 삭제가 안 된다. 이 경우 다시 토픽을 생성할 수도 없으며 해당 토픽으로 들어온 메시지도 처리가 안 된다. $ ./kafka-topics.sh --delete --zookeeper $ZOOKEEPER --topic morpheme.t Topic morpheme.. 2020. 6. 11.
nGrinder를 사용한 REST 부하 테스트 /주의/ 일 년 전에 회사에서 REST 서버 부하 테스트를 진행하면서 메모 용도로 저장해둔 글입니다. 아무래도 글을 쓴 시점이 일 년 전이다 보니 현재 버전과 차이가 있을 수 있습니다. nGrinder 네이버에서 성능 측정 목적으로 jython(JVM위에서 python이 동작)으로 개발 된 오픈소스 프로젝트이다. (The Grinder라는 오픈소스를 기반으로 개발되었다.) github url: https://github.com/naver/ngrinder/ naver/ngrinder enterprise level performance testing solution. Contribute to naver/ngrinder development by creating an account on GitHub. gith.. 2020. 2. 12.
Jenkins pipeline - npm build NodeJS plugin - https://wiki.jenkins.io/display/JENKINS/NodeJS+Plugin Global Tool Configuration에서 node 관련 설정 추가 - Python과는 다르게 버전만 지정하면 자동으로 install stage('npm') { nodejs(nodeJSInstallationName: 'node') { // 위의 설정에서 지정한 node 이름 sh 'npm install && npm run build' } } 2020. 2. 12.
Jenkins pipeline - Sphinx publish(HTML) Settings (1) 아래 두 가지의 Plugin을 모두 설치해야 함 ShiningPanda - Python 설치, Path 지정 Pyenv Pipeline - Python virtualenv (2) Jenkins 관리> Global Tool Configuration 설정 jenkins 공식 이미지에는 python2만 깔려있음 - python3을 사용하거나 여러 버전의 python으로 테스트하기 위해서는 따로 설치를 하고 위의 설정에서 추가해야 함 jenkins: image: 'jenkins/jenkins:latest' restart: always user: root privileged: true environment: - JAVA_ARGS=-Dorg.apache.commons.jelly.tags.fm.. 2020. 2. 12.
Swagger를 통한 REST 요청에 jwt 인증키 포함시키기 @Configuration class WebSecurityConfig : WebMvcConfigurer { override fun addInterceptors(registry: InterceptorRegistry) { registry.addInterceptor(JwtInterceptor()) .addPathPatterns("/v1/api/*") .excludePathPatterns("/v1/api/signin") } } Spring Boot 프로젝트에 위와같이 jwt 인증을 추가한 후 Swagger를 통해 api들을 테스트하려는데, 아래와 같이 jwt 인증에러가 발생한다. 2020-01-21 10:24:03,184 [https-jsse-nio-19932-exec-7] ERROR org.apache.cat.. 2020. 1. 22.