[SWEA] 5656. 벽돌 깨기 (시뮬레이션/Java)
·
코딩 테스트/SWEA
[SWEA] 5656. 벽돌 깨기 📌 풀이 과정1. 중복순열로 구슬 떨어뜨릴 위치 선택하기2. 구슬 떨어뜨리기3. 벽돌 파괴하기4. 빈칸 채우기 이 과정에 유의해서 차근차근 구현해 나가면 된다.구슬이 명중한 벽돌은 상하좌우로 (벽돌에 적힌 숫자 - 1)칸 만큼 같이 제거된다는 조건을 잊으면 안된다!! ✨ 제출 코드import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.StringTokenizer;public class Solution { static int N, W, H; static int totalOfBrick, count, result; static int[][]..
[싸피셜이 알려드림: 기술편] RDB와 NoSQL의 차이가 뭘까?
·
SSAFY
안녕하세요! SSAFYcial 12기 기자단 안수진 입니다.저는 싸피 생활을 하면서 알고리즘 스터디 뿐만 아니라개발자로서 CS지식을 쌓기 위해서 틈틈이 CS공부도 하고 있는데요!기획기사 [그것을 알려드림 : 기술편]을 진행하면서 제가 공부하면서 궁금했던 CS지식, IT기술을 다룰 예정입니다!😍 RDB와 NoSQL가 무엇인지 탐구하러 가볼까요? 😍 ✍️ RDB(Relational Database)데이터를 표(table) 형식으로 저장하며, 각 표는 행(row)과 열(column)로 구성된다.이렇게 표현된 데이터베이스는 SQL을 통해 관리 및 접근한다.스키마 기반: 데이터를 저장하기 전에 정해진 데이터 스키마에 따라 구조화된다.관계형 모델: 여러 테이블 간의 관계를 설정해 데이터 분산 저장이 가능ACID..
[싸피셜이 알려드림: 인물편] SSAFY 12기 조유정 교육생
·
SSAFY
안녕하세요! SSAFYcial 12기 기자단 안수진 입니다.저의 그것을 알려드림 : 사람편 첫번째 대상은대학교 동기이자, SSAFY 12기 동기이자, SSAFYcial 12기 기자단인 조유정 교육생 입니다!!지금부터 조유정 교육생이 어떤 사람인지 탐구하러 가볼까요?🎀 [그것을 알려드림 - 인물편] 조유정 교육생 🎀안녕하세요ㅎㅎ멋쟁이 개발자가 되고 싶은 SSAFY 12기 조유정이라고 합니다!저는 컴퓨터공학과를 전공하였고, 백엔드 개발을 지망하고 있어요! 반갑습니다~~ 🔊 SSAFY에 지원하게 된 이유가 궁금한데요?컴퓨터공학을 전공하긴 했지만, 기초가 아직 많이 부족하고 생각했습니다!개인적으로 프로젝트를 진행하면서도 기초 지식의 부재로, 내가 옳게 코드를 짜고 있는 건지 의문이 들더라구요ㅠㅠ SSAFY..
[SWEA] 1767. 프로세서 연결하기 (DFS/Java)
·
코딩 테스트/SWEA
[SWEA] 1767. 프로세서 연결하기 📌 풀이 과정최대한 많은 Core에 전원을 연결하였을 경우, 전선 길이의 합을 구해야 한다.단, 여러 방법이 있을 경우, 전선 길이의 합이 최소가 되는 값을 구하는 것이 문제 조건이다.가장자리에 위치한 core는 전선을 연결하지 않기에 전선 연결에서 고려하지 않아도 된다.따라서 가장자리에 있는 core는 코어 목록에서 제외해도 된다.✨ 제출 코드메모리 : 22,048 kb시간 : 196 msimport java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.ArrayList;import java.util.List;import java.uti..
[SWEA] 5644. 무선 충전 (시뮬레이션/Java)
·
코딩 테스트/SWEA
[SWEA] 5644. 무선 충전 📌 풀이 과정처음에는 BC의 범위를 관리하기 위해서 배열을 따로 두어야 하나? 고민을 했다.하지만, 이 문제에서 핵심은 특정 위치에서 어떤 BC가 사용 가능한지를 실시간으로 파악하는 것이기 때문에각 사용자가 이동할 때마다 현재 위치에서 연결 가능한 BC를 탐색하고그에 따른 최댓값을 완전 탐색으로 구하는 방식이 효율적이다.각 사용자는 이동할 때마다 현재 위치에서 접근 가능한 BC를 탐색한다.두 사용자가 동시에 접속 가능한 BC 목록을 완탐으로 최대 충전량을 정한다.같은 BC에 접속할 경우해당 BC의 성능을 한번만 더한다 → 균등하게 분배서로 다른 BC에 접속할 경우각 사용자의 충전량을 더해 최대 충전량을 계산한다. ✨ 제출 코드import java.io.BufferedR..
[백준] 17472. 다리 만들기 2 (MST구현/Java)
·
코딩 테스트/Baekjoon
[백준] 17472. 다리 만들기 2 📌 풀이 과정문제를 읽고 풀 엄두가 나지 않는다면 시리즈 1부터 푸는 것을 추천합니다..[백준] 2146. 다리 만들기 이 문제는 여러개의 섬을 다리로 연결해 하나의 연결된 그래프를 만들고, 그 총 다리 길이의 최소값을 찾는 최소 신장 트리(MST) 문제이다. BFS를 통해 각 섬을 구분한 후 섬 사이에 연결 가능한 다리를 계산한다. 최소값이 될 수도 있는 다리들을 우선순위 큐에 저장한 다음, 크루스칼 알고리즘을 통해 MST를 구현해 모든 섬이 하나로 연결되도록 하면 된다. 문제 조건1. 다리의 방향이 바뀌면 안된다. 무조건 가로 or 세로2. 다리의 길이는 2 이상이어야 한다.모든  섬을 연결하는 다리 길이의 최솟값을 구해야 한다. 입력 값에서 섬은 모두 1로 ..
[백준] 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라면 해당 좌표로 이..