[백준] 문어 - 21313번
·
여러가지/알고리즘 & 자료구조
문어  1 초1024 MB1673112998366.780%문제 문어에게 여덟개의 팔이 있다는 사실은 잘 알려져 있다. 하지만 문어들이 자신의 팔들을 1번, 2번, 3번, ..., 8번이라고 부른다는 말은 오늘 처음 들었을 것이다! 단, 시계방향으로 오름차순이라던가 하는 규칙은 없다. (물론 그러한 문어도 존재할 수 있다.) 문제에선 편의상 팔 대신 손이라고 부르자.문어들은 정월 대보름을 맞아 강강술래를 하려고 한다. 각 문어는 양 옆의 서로 다른 두 문어와 손을 맞잡아 원을 만든다. 문어끼리 손을 잡을 때 지켜야 할 예절이 있다.서로 같은 번호의 손을 잡아야 한다.한 문어와 둘 이상의 손을 잡을 수 없다.한 손으로 여러 문어의 손을 잡을 수 없다.모든 문어들은 예의바르기 때문에 예절을 항상 따른다.강강술..
[백준] 쉽게푸는문제 - 1292번
·
여러가지/알고리즘 & 자료구조
느낀점메모리 효율성:수열을 미리 생성하지 않고 필요한 부분만 계산하는 방식은 메모리를 효율적으로 사용합니다. 이는 특히 메모리 제한이 있는 환경에서 유용할 수 있습니다.코드 간결성:수열 생성과 구간 합 계산을 동시에 수행하는 접근 방식은 코드가 더 간결하고 이해하기 쉬운 구조를 제공합니다.시간 효율성:수열을 미리 생성하는 방식은 특정 상황에서 더 빠르게 구간 합을 계산할 수 있지만, 수열 생성 자체에 많은 시간이 소요될 수 있습니다.메모리를 덜 사용하는 방식은 시간 복잡도가 더 높을 수 있습니다. 특히 입력 크기 B가 클 경우 성능에 영향을 미칠 수 있습니다.문제 요구 사항과 실제 성능:두 방식 모두 문제의 요구 사항을 만족하며, 실제 실행 시간과 메모리 사용량도 문제의 제한 내에 있습니다. 그러나 메모..
[백준] 적어도 대부분의 배수 - 1145번
·
여러가지/알고리즘 & 자료구조
느낀점코드 개선의 중요성:코드 개선을 통해 가독성과 효율성을 높일 수 있어 좋았습니다. 시간 복잡도를 유지하면서도 코드의 구조를 개선하여 더 나은 성능과 유지보수성을 확보할 수 있음을 느꼇습니다..스트림 API의 강력함:Java 스트림 API를 활용하여 복잡한 계산을 간결하고 직관적으로 표현할 수 있음을 다시 한 번 느꼈습니다. 스트림 API는 코드의 가독성을 크게 향상시킬 수 있는 강력한 도구입니다.모듈화와 함수 분리의 중요성:함수 분리와 모듈화를 통해 코드의 재사용성과 유지보수성을 높일 수 있음을 확인했습니다. 각 함수가 하나의 역할을 담당하도록 함으로써 코드의 복잡성을 줄이고, 필요한 경우 쉽게 수정할 수 있었습니다.효율적인 메모리 사용:메모리 사용 최적화를 통해 코드의 성능을 개선할 수 있음을 배..
[트러블슈팅] EC2 재시동 후 iptable 맵핑 정보 사라지는 현상 해결
·
여러가지/오류
EC2 재시동 후 iptable 맵핑 정보 사라지는 현상 해결개요 AWS EC2 인스턴스에서 포트 80으로 들어오는 HTTP 요청을 포트 8080으로 리다이렉트하는 작업 중 발생한 문제와 그 해결 과정을 다룹니다. 또한, 인스턴스 재시작 후 iptables 규칙이 유지되도록 설정하는 방법을 포함합니다. 문제가 발생한 상황포트 80으로 들어오는 HTTP 요청을 포트 8080에서 실행 중인 애플리케이션으로 리다이렉트하려는 설정 작업 중, EC2 인스턴스를 중지하고 다시 시작한 후 iptables 규칙이 사라지는 문제가 발생했습니다. 이로 인해 리다이렉션 설정이 유지되지 않았습니다. 문제의 원인EC2 인스턴스를 중지하고 다시 시작하면 iptables의 규칙이 휘발성 메모리에 저장되기 때문에 사라집니다. 이는 ..
[트러블슈팅] 80포트 요청을 8080포트로 리다이렉션하기(feat. AWS)
·
여러가지/오류
포트 80에서 포트 8080으로의 리다이렉션 설정 느낀점이번 작업을 통해 여러 가지 중요한 교훈을 얻을 수 있었습니다.1. 네트워크 인터페이스 확인의 중요성:서버 환경에 따라 네트워크 인터페이스 이름이 다를 수 있으므로, 작업 전에 항상 활성화된 인터페이스를 확인해야 합니다. 이를 통해 불필요한 오류를 피하고, 설정 작업을 더 효율적으로 수행할 수 있습니다.2. 정확한 정보의 필요성:인터넷 블로그나 튜토리얼에서 제공하는 정보는 일반적인 환경을 기반으로 하기 때문에, 이를 맹목적으로 따르기보다는 자신의 환경에 맞게 수정하는 것이 필요합니다. 특히 네트워크 인터페이스와 관련된 정보는 서버마다 다를 수 있으므로, 정확한 정보를 바탕으로 설정을 진행해야 합니다.3. AWS 보안 그룹 설정의 중요성:AWS EC2..
[트러블슈팅] Github Action을 이용한 CICD
·
여러가지/오류
개요CI/CD 파이프라인 구축 과정에서 발생한 다양한 실수와 오류, 문제의 원인, 그리고 이를 해결한 방법에 대해 상세하게 설명합니다. 주된 목적은 GitHub Actions를 활용하여 애플리케이션의 자동화된 빌드, 테스트, 배포 파이프라인을 구축하는 것입니다. 본 보고서는 구축 과정에서 발생한 문제들을 체계적으로 정리하여 유사한 프로젝트를 진행하는 개발자들에게 도움이 되고자 합니다.실수 사항, 문제의 원인 및 해결 방법Docker 빌드 오류: JAR 파일을 찾을 수 없음오류 메시지: failed to calculate checksum of ref ... lstat /tmp/buildkit-mount.../build/libs: no such file or directory문제의 원인: Docker 빌드 ..
[백준] 가장긴감소하는부분수열 - 11722번
·
여러가지/알고리즘 & 자료구조
가장 긴 감소하는 부분 수열1 초256 MB35656220881816962.951%문제수열 A가 주어졌을 때, 가장 긴 감소하는 부분 수열을 구하는 프로그램을 작성하시오.예를 들어, 수열 A = {10, 30, 10, 20, 20, 10} 인 경우에 가장 긴 감소하는 부분 수열은 A = {10, 30, 10, 20, 20, 10} 이고, 길이는 3이다.입력첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000)이 주어진다.둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (1 ≤ Ai ≤ 1,000)출력첫째 줄에 수열 A의 가장 긴 감소하는 부분 수열의 길이를 출력한다.예제 입력 1 복사610 30 10 20 20 10예제 출력 1 복사3코드package 가장긴감소하는부분수열;import java...
[백준] 부녀회장이될테야 - 2775번
·
여러가지/알고리즘 & 자료구조
부녀회장이 될테야 0.5 초 (추가 시간 없음)128 MB104395590145008757.510% 문제평소 반상회에 참석하는 것을 좋아하는 주희는 이번 기회에 부녀회장이 되고 싶어 각 층의 사람들을 불러 모아 반상회를 주최하려고 한다.이 아파트에 거주를 하려면 조건이 있는데, “a층의 b호에 살려면 자신의 아래(a-1)층의 1호부터 b호까지 사람들의 수의 합만큼 사람들을 데려와 살아야 한다” 는 계약 조항을 꼭 지키고 들어와야 한다.아파트에 비어있는 집은 없고 모든 거주민들이 이 계약 조건을 지키고 왔다고 가정했을 때, 주어지는 양의 정수 k와 n에 대해 k층에 n호에는 몇 명이 살고 있는지 출력하라. 단, 아파트에는 0층부터 있고 각층에는 1호부터 있으며, 0층의 i호에는 i명이 산다.입력첫 번째 줄..