
들어가기에 앞서2024.12.14 ~ 2025.3.1 항해플러스 백엔드 7기 과정을 수료했습니다.10주 동안 어떤 것을 배우고 경험했는지, 과정 중 했던 기술적 고민들과 좋았던 부분들을 돌아보며 마지막으로 이 과정을 추천하고 싶은 분들에 대해 이야기하고자 합니다. 항해플러스 관련 이전 글항해플러스 백엔드 7기를 시작하며...항해 플러스 백엔드 1주차 회고 - TDD항해 플러스 백엔드 2주차 회고 - Clean Architecture항해플러스 3~5주차 회고 돌아보면 짧은 10주, 수료하다!무엇을 했나요?TDD & 메모리 기반 동시성 제어 기본 학습 및 과제 진행 (깃허브 링크)특강 신청 서비스 – 클린 + 레이어드 아키텍처, 동시성 제어, TDD 적용 (깃허브 링크)대규모 트래픽을 고려한 대기열 기반 ..
문제 링크 타겟 넘버 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 코드 class Solution { public int solution(int[] numbers, int target) { int answer = dfs(0, 0, numbers, target); return answer; } private int dfs(int depth, int sum, int[] numbers, int target) { if(depth == numbers.length) { if (sum == target) return 1; else return 0; } retu..
문제 링크 섬의 개수 4963번: 섬의 개수 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 지도의 너비 w와 높이 h가 주어진다. w와 h는 50보다 작거나 같은 양의 정수이다. 둘째 줄부터 h개 줄에는 지도 www.acmicpc.net 풀이 코드 import java.util.*; public class Main { static class Position { int x; int y; Position(int x, int y) { this.x = x; this.y = y; } } // BFS 탐색을 위한 Queue 정의. static Queue queue = new LinkedList(); // 방향벡터 정의(상, 하, 좌, 우, 대각선) static int[] dx =..
문제 링크 바이러스 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하인 양의 정수이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍 www.acmicpc.net 풀이 코드(DFS) import java.util.*; public class Main { static int n; static int m; static int[][] graph; public static void main(String[] args) { Scanner sc = new Scanner(System.in); n = sc.nextInt(); //정점의 개수 m = sc.nextInt(); //간선의 개수 graph = new int[n+1..
문제 링크 DFS와 BFS 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net 풀이 코드 import java.util.*; public class Main { static int n; static int m; static int[][] graph; static boolean[] visited; /** * 입,출력 */ public static void main(String[] args) { Scanner sc = new Scanner(System.in); n = sc.nex..
문제 링크 피보나치 수 풀이 코드 import java.util.*; public class Main { static int[] fibo; public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); System.out.println(solution(n)); } private static int solution(int n) { fibo = new int[n+1]; int answer = recursive(n); return answer; } private static int recursive(int n) { if(fibo[n] != 0) return fibo[n]; if(n == 0) r..
문제 링크 체스판 다시 칠하기 1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net 풀이 코드 import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); // n 입력받기 int n = sc.nextInt(); // m 입력받기 int m = sc.nextInt(); // board 입력받기 char[][] board = new char[n][m]; for(..
문제 링크 숫자 야구 2503번: 숫자 야구 첫째 줄에는 민혁이가 영수에게 몇 번이나 질문을 했는지를 나타내는 1 이상 100 이하의 자연수 N이 주어진다. 이어지는 N개의 줄에는 각 줄마다 민혁이가 질문한 세 자리 수와 영수가 답한 스트 www.acmicpc.net 풀이 코드 import java.util.*; public class Main { static class Question { String number; int strike; int ball; Question(String number, int strike, int ball) { this.number = number; this.strike = strike; this.ball = ball; } } /** * 입,출력 */ public static..
문제 링크 사탕 게임 [3085번: 사탕 게임 예제 3의 경우 4번 행의 Y와 C를 바꾸면 사탕 네 개를 먹을 수 있다. www.acmicpc.net](https://www.acmicpc.net/problem/3085) 풀이 코드 import java.util.*; class Main { static int[] dx = {1, 0, -1, 0}; static int[] dy = {0, 1, 0, -1}; static char[][] arr; public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); arr = new char[n][n]; for(int i=0; i
문제 링크 부분수열의 합 1182번: 부분수열의 합 첫째 줄에 정수의 개수를 나타내는 N과 정수 S가 주어진다. (1 ≤ N ≤ 20, |S| ≤ 1,000,000) 둘째 줄에 N개의 정수가 빈 칸을 사이에 두고 주어진다. 주어지는 정수의 절댓값은 100,000을 넘지 않는다. www.acmicpc.net 풀이 코드 import java.util.*; public class Main { static int answer; /** * 입,출력 */ public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int s = sc.nextInt(); int[] arr = new int[n]; f..