[백준] 17136. 색종이 붙이기 (백트래킹/Java)
·
코딩 테스트/Baekjoon
[백준] 17136. 색종이 붙이기 📌 풀이 과정큰 색종이를 먼저 붙이는 것이 효율적이므로큰 색종이로 덮을 수 있는 범위를 줄이고, 남은 작은 영역에 더 작은 색종이를 붙이도록 해야한다.그리고 색종이를 붙이는 과정에서 잘못된 선택일 경우, 다시 돌아와서 더 작은 색종이를 붙이는 로직이 필요하다.즉, 색종이를 붙이는 순서에 따라 최종 결과가 달라지기 때문에 모든 경우를 시도하는 백트래킹이 필요하다. 1️⃣ DFS 탐색(x, y) 좌표에서 색종이를 붙이면서 최소한의 색종이를 찾기 위해 재귀적으로 탐색한다.기저 조건: x >= 10에 도달하면 모든 칸을 탐색한 것이므로, 사용한 색종이 개수(usedPapers)를 최솟값으로 갱신한다.(y >= 10)일 때는 한 행을 다 탐색한 것이므로 다음 행으로 이동한다...
[SWEA] 5653. 줄기세포배양 (구현/Java)
·
코딩 테스트/SWEA
[SWEA] 5653. 줄기세포배양 📌 문제 과정◾ 문제 조건세포는 생명력 수치에 따라 일정 시간이 지나면 활성화되고, 그 후 상하좌우로 번식한다.두 개 이상의 세포가 같은 위치로 번식하려고 하면 생명력이 높은 세포만 번식에 성공한다.시간 경과에 따라 세포는 비활성화 → 활성화 → 죽음의 과정을 거친다.생명력 수치가 X인 줄기 세포의 경우 X시간 동안 비활성 상태이고 X시간이 지나는 순간 활성 상태가 된다.줄기 세포가 활성 상태가 되면 X시간 동안 살아있을 수 있으며 X시간이 지나면 세포는 죽게 된다.이 조건을 제대로 안봐서 조큼 삽질한... ◾ 맵 크기 초기화세포가 K 시간 동안 번식하며 범위가 확장되기 때문에배양 시간에 따라 충분한 공간을 확보하기 위해 맵의 크기를 N + 2 * K 로 설정한다. ..
[AWS 오류 해결] EC2 환경변수 설정하기
·
프로젝트/짠모아
EC2 인스턴스에서 프로젝트를 직접 빌드하고jar 파일을 실행시켜서 얻은 nohup.out파일을 직접 확인 해봤다.EC2에서 애플리케이션 로그 확인하기 문제 원인로그를 분석해보니 데이터베이스 환경 변수를 전혀 읽어오지 못하고 있었다.위 사진에서 처럼 MySQL 연결을 위한 환경 변수를 EC2 인스턴스는 전혀 모르고 있었다. .bashrc 파일에 환경변수 설정.bashrc 파일에 환경변수를 설정했지만main 브랜치에서 push하고 서버가 배포되었을때 서버는 여전히 응답하지 않았고,ec2 터미널에 접속해 직접 프로젝트를 빌드해야 서버가 제대로 동작했다.  🚨 환경 변수를 설정했는데도 서버는 왜 제대로 동작하지 않을까?CodeDeploy는 시스템 서비스로서 동작하기 때문에,사용자 로그인 세션에서만 로드되는 ..
[백준] 2206. 벽 부수고 이동하기 (그래프 탐색 / Java)
·
코딩 테스트/Baekjoon
[BOJ] 2206. 벽 부수고 이동하기 📌 풀이 과정벽이 존재하는 미로에서 (0,0)에서 시작해 (N-1,M-1)까지 이동해야 하며, 이동 중에 벽을 한 번 부수는 것이 허용되는 문제다.BFS 탐색 중, 같은 좌표 (x, y)에 도착했더라도 벽을 부수고 도착했는지부수지 않고 도착했는지를 구분해야 하기 때문에 3차원 방문 배열을 사용해야 한다. 3차원 방문 배열의 사용visited[x][y][0]: 좌표 (x, y)에 벽을 부수지 않고 방문한 상태visited[x][y][1]: 좌표 (x, y)에 벽을 한 번 부수고 방문한 상태 이동 가능한 좌표 탐색벽이 아닌 곳으로 이동다음으로 이동하려는 좌표가 map[nx][ny] = 0 이고, 현재 상태(broke)에 맞는 방문처리가 false라면 해당 좌표로 이..
[AWS 오류 해결] EC2에서 애플리케이션 로그 확인하기
·
프로젝트/짠모아
테스트 코드 contextLoads() FAILED 오류 해결하기 를 통해서 로컬 자바 애플리케이션에서는 오류가 발생하지 않았지만, 서버에 배포된 애플리케이션에서는 오류가 발생할 수 있다는 점을 깨달았다.EC2 인스턴스에 올라간 애플리케이션의 실행 로그를 확인하는 방법이 중요하다는 생각이 들어서EC2에서 애플리케이션 로그를 확인하는 과정을 정리해 보았다. 😁 EC2에서 애플리케이션 빌드 및 실행 과정1. 애플리케이션 빌드./gradlew build먼저 애플리케이션을 빌드한다.이 명령어는 Gradle을 사용하여 프로젝트를 빌드한다. build 태스크는 소스 코드를 컴파일하고, 테스트를 실행하며, 최종적으로 배포 가능한 JAR 파일을 생성한다.2. 빌드된 JAR 파일이 위치한 디렉토리로 이동cd build..
[AWS 오류 해결] 테스트 코드 contextLoads() FAILED 오류 해결하기
·
프로젝트/짠모아
문제 원인테스트 코드 contextLoads() FAILEDEC2로 gradlew 빌드하는 과정에서 다음과 같은 오류가 발생했다.ZzanmoaApplicationTests > contextLoads() FAILED java.lang.IllegalStateException at DefaultCacheAwareContextLoaderDelegate.java:180 Caused by: org.springframework.beans.factory.BeanCreationException at AbstractAutowireCapableBeanFactory.java:1786 Caused by: jakarta.persistence.PersistenceException at Abst..
[AWS 오류 해결] swap 파일로 메모리 할당하기
·
프로젝트/짠모아
EC2 인스턴스에서 서버 파일을 git clone한 후, 서버에 접속하면 무한 로딩이 생겼다.그리고 CPU 사용량을 보니 90%을 찍은 흔적도 있었다. 문제 원인무한 로딩 문제는 메모리 부족으로 인해 발생할 수 있다는 것을 알게 되었다.EC2 프리티어에서 제공하는 t2.micro 인스턴스는 RAM이 1GB에 불과하여메모리 과부하로 인해 빌드가 진행되지 않는 것으로 보였다. 💡 해결 방법: Swap 메모리 사용Swap 메모리는 RAM이 부족할 때 리눅스에서 HDD 공간을 RAM처럼 사용하는 방법이다.이를 통해 부족한 RAM을 보완하여 시스템이 정상적으로 작동할 수 있도록 한다.1. swap 메모리 할당sudo dd if=/dev/zero of=/swapfile bs=128M count=162. swap ..
[AWS 오류 해결] CodeDeploy 로그 확인하기
·
프로젝트/짠모아
서울 공공데이터 활용 경진대회의 참가 조건이개발 결과물(앱스토어/웹 서비스 URL)을 등록 완료한 링크를 제출하는 것이었다. 그래서 AWS를 이용해 서비스 서버를 구축해야만 했다.하지만.. 약 2주간 EC2 Public 주소에 접근하지 못했다. 이를 해결해 나간 과정을 차례대로 작성할 예정이다. 먼저, EC2 인스턴스 터미널에 접속하자 !!! 👀 CodeDeploy 로그 확인하기로그 확인 명령어less /var/log/aws/codedeploy-agent/codedeploy-agent.log로그 내용2024-04-18T05:55:05 ERROR [codedeploy-agent(30886)]: InstanceAgent::Plugins::CodeDeployPlugin::CommandPoller: Error..
[백준] 17135. 캐슬 디펜스 (시뮬레이션/Java)
·
코딩 테스트/Baekjoon
[BOJ] 17135. 캐슬 디펜스 📌 풀이 과정캐슬 디펜스 문제 조건각 궁수는 공격 범위 내에서 가장 가까운 적을 공격하며, 동일한 거리의 적이 여러 명일 경우 가장 왼쪽의 적을 선택한다.매 턴마다 모든 궁수가 동시에 공격하고, 공격받은 적은 제거된다. 공격 후, 살아남은 적은 한 칸 아래로 이동한다.적이 성에 도달하면 게임에서 제외된다. 문제 설계하기1. 적의 위치를 리스트에 저장해, 공격할 대상을 관리한다.2. 3명의 궁수를 성이 있는 칸에 배치하는 조합을 만든다.3. 배치 완료된 각 궁수의 위치에 대해 가능한 적을 탐색한다.적의 위치와 궁수의 거리 계산 → 맨해튼 거리가장 가까운 적을 찾고, 동일한 거리에 여러 적이 있다면 가장 왼쪽 열에 있는 적을 선택한다.4. 적 제거 및 이동하기궁수들이 선..
[서울시 공공데이터 경진대회] 최우수상 수상 프로젝트 - 짠모아
·
프로젝트/짠모아
짠모아 Github Repository[서울 열린데이터광장] 공공데이터 활용 창업경진대회 역대 수상작 확인하기 🏆 소비 절약 플랫폼 "짠모아" 프로젝트서비스명 : 짠모아팀명 : 짠돌이 (UI 디자이너(1), FrontEnd(2), BackEnd(2))약 2~3개월간 개발 진행 최근 고물가와 고금리로 인해 소비자들의 절약과 현명한 소비에 대한 관심이 커지고 있다. 이에 따라 소비자들은 더 나은 가격에 물품을 구매할 방법을 찾고 있으며, ‘거지방’, ‘무지출 챌린지’, ‘현금 챌린지’와 같은 새로운 절약 문화가 확산되고 있다. 이러한 흐름은 소비자들이 자신의 소비 패턴을 점검하고, 불필요한 지출을 줄여 저축을 늘리는 데 중점을 두고 있음을 보여준다. 이러한 배경에서 소비자들이 보다 쉽고 효과적으로 물가 정..