전체 글

알고리즘/자바

[백준 알고리즘] 9527번 자바(Java) 1의 개수 세기

문제두 자연수 A, B가 주어졌을 때, A ≤ x ≤ B를 만족하는 모든 x에 대해 x를 이진수로 표현했을 때 1의 개수의 합을 구하는 프로그램을 작성하시오.즉, f(x) = x를 이진수로 표현 했을 때 1의 개수라고 정의하고, 아래 식의 결과를 구하자. 입력첫 줄에 두 자연수 A, B가 주어진다. (1 ≤ A ≤ B ≤ 1016)출력1의 개수를 세어 출력한다. 풀이10^16값을 다 저장하는게 메모리상 불가능하므로 누적합을 이용해서 저장해야한다ex. 12이면 2[2]까지의 누적합 12를 더해준다.근데 이제 8~12의 값을 규칙을 토대로 구해야하는데 이걸 타 블로그에서는 비트마스크 방식을 채택했다본인은 그방식과 다르게 2로 나눠서 남은 누적합을 구한 이후 추후 더하는 방식을 채택했다   이와같은 방법으로 ..

알고리즘/자바

[백준 알고리즘] 1011번 자바(Java) Fly me to the Alpha Centauri

문제우현이는 어린 시절, 지구 외의 다른 행성에서도 인류들이 살아갈 수 있는 미래가 오리라 믿었다. 그리고 그가 지구라는 세상에 발을 내려 놓은 지 23년이 지난 지금, 세계 최연소 ASNA 우주 비행사가 되어 새로운 세계에 발을 내려 놓는 영광의 순간을 기다리고 있다.그가 탑승하게 될 우주선은 Alpha Centauri라는 새로운 인류의 보금자리를 개척하기 위한 대규모 생활 유지 시스템을 탑재하고 있기 때문에, 그 크기와 질량이 엄청난 이유로 최신기술력을 총 동원하여 개발한 공간이동 장치를 탑재하였다. 하지만 이 공간이동 장치는 이동 거리를 급격하게 늘릴 경우 기계에 심각한 결함이 발생하는 단점이 있어서, 이전 작동시기에 k광년을 이동하였을 때는 k-1 , k 혹은 k+1 광년만을 다시 이동할 수 있다..

알고리즘/자바

[프로그래머스] 86971번 자바(Java) 전력망을 둘로 나누기

https://school.programmers.co.kr/learn/courses/30/lessons/86971 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제n개의 송전탑이 전선을 통해 하나의 트리 형태로 연결되어 있습니다. 당신은 이 전선들 중 하나를 끊어서 현재의 전력망 네트워크를 2개로 분할하려고 합니다. 이때, 두 전력망이 갖게 되는 송전탑의 개수를 최대한 비슷하게 맞추고자 합니다. 송전탑의 개수 n, 그리고 전선 정보 wires가 매개변수로 주어집니다. 전선들 중 하나를 끊어서 송전탑 개수가 가능한 비슷하도록 두 전력망으로 나누었을 때, 두 ..

알고리즘/자바

[프로그래머스] 49189번 자바(Java) 가장 먼 노드

출처https://school.programmers.co.kr/learn/courses/30/lessons/49189 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제n개의 노드가 있는 그래프가 있습니다. 각 노드는 1부터 n까지 번호가 적혀있습니다. 1번 노드에서 가장 멀리 떨어진 노드의 갯수를 구하려고 합니다. 가장 멀리 떨어진 노드란 최단경로로 이동했을 때 간선의 개수가 가장 많은 노드들을 의미합니다.노드의 개수 n, 간선에 대한 정보가 담긴 2차원 배열 vertex가 매개변수로 주어질 때, 1번 노드로부터 가장 멀리 떨어진 노드가 몇 개인지를 ret..

기타

[SSAFY 12기 전공 서울 합격 후기] 코딩 테스트, 면접 준비과정 & 졸업

에세이 작성기본적으로 자기소개서가 많은 내용을 요구하지는 않았다. 기업 채용에서 4000자를 쓰는 자기소개서가 많아서 그런지 1문항, 500자 자기소개서는 적게 느껴졌다. 다시 생각해보면 글의 방향을 잘못 정했는데, 그때 당시는 IT 기업에서 원할 법한 답과 기술적인 내용을 적었던 것 같다. 이미 붙은 와중에 생각하는 거지만, 다시 작성한다면 온라인 설명회 내용을 토대로 나에게 왜 싸피가 필요한지와 무엇을 배우고 싶은지를 중점으로 적을 것 같다.코딩 테스트이때 당시에 5월 말까지 해야하는 졸업 프로젝트와 코딩테스트 기간이 겹치면서 많은 준비를 하지 못했다. D1, D2, D3 각 한 문제씩 풀고 테스트를 치뤘다. 타 후기 보면 시간 남았다는 사람도 있었는데 본인은 한 문제에서 삽질을 심하게 하여 마감 1..

알고리즘/자바

[백준 알고리즘] 2110번 자바(Java) 공유기 설치

문제도현이의 집 N개가 수직선 위에 있다. 각각의 집의 좌표는 x1, ..., xN이고, 집 여러개가 같은 좌표를 가지는 일은 없다.도현이는 언제 어디서나 와이파이를 즐기기 위해서 집에 공유기 C개를 설치하려고 한다. 최대한 많은 곳에서 와이파이를 사용하려고 하기 때문에, 한 집에는 공유기를 하나만 설치할 수 있고, 가장 인접한 두 공유기 사이의 거리를 가능한 크게 하여 설치하려고 한다.C개의 공유기를 N개의 집에 적당히 설치해서, 가장 인접한 두 공유기 사이의 거리를 최대로 하는 프로그램을 작성하시오. 입력첫째 줄에 집의 개수 N (2 ≤ N ≤ 200,000)과 공유기의 개수 C (2 ≤ C ≤ N)이 하나 이상의 빈 칸을 사이에 두고 주어진다. 둘째 줄부터 N개의 줄에는 집의 좌표를 나타내는 xi ..

기타

Ubuntu 20.04서버 대기 모드로 들어가는 문제 해결

발생하는 문제문제 찾기 현재 가상서버(Ubuntu 20.04)에 Elasticsearch DB가 작동되게끔 docker를 통해 컨테이너를 실행중입니다. 타 서버에 돌아가는프로젝트에서 Elasticsearch 관련 API 호출시 첫 호출이 오류로 돌아오거나 상당한 시간이 소요되는 문제점이 있었습니다.발견된 문제점기존 Ubuntu 18.04 버전에서는 확인되지 않았던 문제였지만 20.04 버전은 서버 구성 시 일정 시간이 지나면 네트워크 인터페이스까지 대기모드로 들어가는 현상이 발생합니다.해결 방안대기 모드와 관련된 서비스 유닛을 비활성화하는 대신에 'mask' 명령을 사용하여 변경하는 것으로 문제를 해결했습니다. 이를 위해 다음과 같은 단계를 수행했습니다.'mask' 명령을 사용하여 대기 모드 관련 서비스..

스프링/테스트

Spring Testcontainer를 활용한 Elasticsearch 테스트 코드 작성

왜 Testcontainer를 사용하는가?Spring DB 테스트 Rollback 원리Spring에서는 테스트 코드 작성을 위해 @Test 어노테이션과 @Transactional 어노테이션을 함께 사용하면 기본적으로 롤백이 활성화됩니다. 이는 테스트가 실행된 후 변경된 데이터가 실제 데이터베이스에 영향을 미치지 않도록 보장하는 것입니다. NoSql 테스트 NoSQL 데이터베이스를 사용할 때는 이러한 접근 방식이 다소 복잡해질 수 있습니다.NoSQL 데이터베이스는 일반적으로 ACID 트랜잭션을 지원하지 않거나, 관계형 데이터베이스와는 다르게 구현됩니다. 따라서 Spring의 트랜잭션 처리 메커니즘을 NoSQL 데이터베이스에 적용하는 것은 번거롭습니다.NoSQL 데이터베이스를 사용하는 경우에는 다음과 같은 ..

스프링/테스트

Postman을 활용한 API 테스트에서의 로그인 세션 유지 및 타 API 테스트

간략 소개Postman은 API를 테스트하고 디버그하는 데 유용한 강력한 도구입니다. 그러나 로그인 세션을 유지해야 하는 경우, 특히 세션 정보를 다른 API 요청에도 적용해야 할 때가 있습니다. 이 글에서는 Postman을 사용하여 로그인 세션을 유지하고 다른 API를 테스트하는 방법에 대해 알아보겠습니다. 흐름로그인 요청 보내기: Postman을 사용하여 로그인 API에 요청을 보냅니다. 사용자 인증이 성공하면 서버로부터 세션 ID를 받습니다. 인증 정보 저장: 받은 인증 정보를 Postman의 환경 변수나 글로벌 변수에 저장합니다. 주로 헤더나 쿠키에 저장하여 세션을 유지합니다.다른 API 요청 시 인증 정보 사용: 다른 API를 테스트할 때, 저장된 세션 정보를 사용하여 요청합니다. Postman..

데이터베이스/ElasticSearch

Elasticsearch DB 구축 과정과 최적화 전략

필요성교내 프로젝트 진행시에 금전적인 문제로 최종 배포 전에 테스트 단계에서는 AWS ec2 t2.medium 단계를 사용하여 Elasticsearch DB 서버를 구축해야 했습니다. 이 과정에서 DB의 노드 개수와 메모리 할당 크기를 결정해야 했습니다.과정  Docker를 이용하여 Elasticsearch를 구축했기 때문에 Docker compose.yml 파일과 설정 파일 .env 파일을 수정하여 테스트를 진행했습니다.  테스트를 진행할 때는 top 명령어를 이용하여 서버의 메모리 할당 상태를 모니터링하고, 동시에 Docker Elasticsearch 노드의 로그를 분석하여 테스트를 진행했습니다. 이를 통해 각 단계에서의 메모리 사용량과 서버의 상태를 확인하고 최적의 구성을 찾았습니다테스트 과정 및 ..

Ash_jisu
JisuStory