반응형

전체 글 114

99클럽 코테 스터디 25일차 TIL, 배열(Find The Original Array of Prefix Xor)

1. 문제 정의2. 문제 접근배열을 이용하면 된다.3. 문제 풀이배열을 정의한다.xor 메서드로 점화식을 세운다.4. 코드class Solution { public int[] findArray(int[] pref) { int[] ans = new int[pref.length]; ans[0] = pref[0]; //초기값 설정 for(int i = 1; i   5. 회고이번 문제는 xor 기능이 java에서 지원하는지를 물어보는 문제인 것 같다. bit연산자의 경우 잘 쓰지 않아서 찾아보긴 했지만, 정말 성능적으로 민감한 경우에는 비트연산자를 써서 메서드를 만든다고 하니 한번씩 살펴보는 것도 좋을 것 같다.

시작하는 마음

항해 플러스 참여 계기저는 5년차 백엔드 개발자입니다. 주로 SI 사업 위주로 프로젝트를 진행하여서, 깊이 있는 지식 습득이 어려웠다고 스스로 생각을 많이 하였습니다. 그러던 중 우연히 항해 플러스 광고를 보게 되었고, 이 시간을 통해 개발자로서 깊은 성장을 할 수 있을 것 같다는 생각이 들었습니다. 벼는 익을수록 고개를 숙인다고 합니다. 이 시간을 통해서 좀 더 유연하며 깊은 뿌리를 가진 개발자로 성장하는 계기가 되도록 노력하겠습니다.향후 5년 뒤 커리어 방향성5년 뒤에는 백엔드 개발자를 넘어 백엔드 엔지니어로 성장해 있지 않을까 생각합니다. 엔지니어란 어떤 문제를 발견했을 때 해결할 수 있는 능력을 기본 소양으로 갖추고 있어야 할 것입니다. 많은 경험을 통해 경험의 폭을 넓히고, 어쩔때는 신입 개발자..

99클럽 코테 스터디 24일차 TIL, 배열(Subrectangle Queries)

1. 문제 정의2. 문제 접근배열을 이용하면 된다.3. 문제 풀이배열을 정의한다.각 요구조건에 맞게 메서드를 정의한다.4. 코드class SubrectangleQueries { int[][] matrix; public SubrectangleQueries(int[][] rectangle) { int r = rectangle.length; int c = rectangle[0].length; matrix = new int[r][c]; for(int i = 0; i   5. 회고이번 문제는 이 난이도가 중간인지 모를 문제이다. 문제는 복잡해보였지만 단순 구현문제였던 것 같다.

99클럽 코테 스터디 23일차 TIL, 그래프(순위)

1. 문제 정의2. 문제 접근플로이드 와샬 알고리즘을 이용하여 노드의 관계를 통해 순위를 구하면 된다.3. 문제 풀이그래프를 만든다.플로이드 와샬 알고리즘을 통해 각 노드의 순위를 구한다.각 노드마다 n-1개의 순위를 알고 있으면 정답을 더해준다.정답을 리턴한다.4. 코드class Solution { public int solution(int n, int[][] results) { int[][] graph = new int[n + 1][n + 1]; int answer = 0; for (int[] e : results) { graph[e[0]][e[1]] = 1; //이겼을 경우 1로 초기화 graph[e[1]][e[..

99클럽 코테 스터디 22일차 TIL, 그래프(가장 먼 노드)

1. 문제 정의2. 문제 접근결국 모든 노드를 그래프 형태로 만들어서 bfs 돌면서 노드들을 탐색하며 노드사이의 길이를 갱신해주면 된다.3. 문제 풀이그래프를 만든다.BFS를 돌면서 모든 노드를 탐색하며 길이를 갱신해준다.최대 깊이의 정답을 리턴한다.4. 코드import java.util.*;class Solution { static boolean[] visit; static List[] list; static int answer; public int solution(int n, int[][] edge) { answer = 0; visit = new boolean[n + 1]; list = new ArrayList[n + 1]; ..

99클럽 코테 스터디 21일차 TIL, 이분법(Capacity To Ship Packages Within D Days)

1. 문제 정의2. 문제 접근정해진 기간 내에 어느 무게로 해야 딱 정해진 기간에 끝낼 수 있는지 찾는 문제다. brute force 를 이용하여 완전탐색을 하면 문제를 풀 수 있지만, 그렇게 하면 시간 복잡도가 n의제곱이 되어 시간초과가 날 것이다. 그래서 nxlogn을 쓰면 정해진 시간 내에 문제를 해결할 수 있을 것 같다.3. 문제 풀이두 포인트를 구한다.두 포인트의 중앙을 구하여 정해진 기간 내에 통과가 되는지 확인한다.계속 범위를 좁혀나간다.답을 리턴한다.4. 코드class Solution { public int shipWithinDays(int[] weights, int days) { int sum = 0; int max = 0; for(int ..

99클럽 코테 스터디 20일차 TIL, 이분법(입국심사)

1. 문제 정의2. 문제 접근처음에는 queue를 사용하여 각각의 심사대를 queue로 정의해서 빼려고 했으나 그럼 공간복잡도가 너무 많이 나올 것 같아서 찾아보니 이분법으로도 해결이 가능해 보였다.3. 문제 풀이두 포인트를 지정한다.두 포인트의 중앙을 구하여 몇명이 통과 가능한지를  정한다.계속 범위를 좁혀나간다.4. 코드import java.util.*;class Solution { public long solution(int n, int[] times) { long answer = 0; Arrays.sort(times); long l = 0; long r = times[times.length-1] * (long) n; // 모든 사람이 ..

99클럽 코테 스터디 19일차 TIL, DP(Count Square Submatrices with All Ones)

1. 문제 정의2. 문제 접근dp 토픽에 속한 것이니 dp로 풀면 될 것 같다.3. 문제 풀이dp 배열을 만든다.점화식을 찾는다.결국 사각형을 만들어야 하는데, 한변의 길이가 1~300 사이의 정사각형이 될 것이고, 사각형을 어떻게 만들것인가를 점화식으로 표현하면 된다.해당 좌표의 값이 0이 아니면서, 사각형을 이루는 dp값의 최솟값에 1을 더해주면 해당 위치의 사각형 갯수가 된다.모든 dp 값을 더해준 것을 리턴한다.4. 코드class Solution { public int countSquares(int[][] matrix) { int ans = 0; int n = matrix.length; int m = matrix[0].length; i..

99클럽 코테 스터디 18일차 TIL, DP(Partition Array for Maximum Sum)

1. 문제 정의2. 문제 접근dp 토픽에 속한 것이니 dp로 풀면 될 것 같다.3. 문제 풀이k길이 만큼의 window가 필요하고, 이 window를 sliding하면서 for-loop의 각 시점마다 최대값을 알아낸다.이전 dp 배열에 내가 알아낸 최댓값을 곱해주고 더해준다.마지막 인덱스의 값을 리턴한다.4. 코드class Solution { public int maxSumAfterPartitioning(int[] arr, int k) { int length = arr.length; int[] dp = new int[length + 1]; for (int i = 1; i = 0; j++) { max = Math.max(max, ..

99클럽 코테 스터디 17일차 TIL, DP(Count Sorted Vowel Strings)

1. 문제 정의2. 문제 접근dp 토픽에 속한 것이니 dp로 풀면 될 것 같다.3. 문제 풀이규칙을 찾는다. 규칙을 통해 점화식을 찾는다. 정답을 도출한다.4. 코드- dp를 통한 풀이class Solution { public int countVowelStrings(int n) { int a, e, i, o, u; a=e=i=o=u=1; for(int k = 1; k  - dfs를 활용한 풀이class Solution { int ans; StringBuilder sb; List result; public int countVowelStrings(int n) { String[] strs = {"a", "e", "i", "o"..

반응형