99클럽 코테 스터디 17일차 TIL (챌린저): [백준][Java] 2056 작업 - 골드4
·
ProblemSolve/항해99 코테스터디
문제 보기https://www.acmicpc.net/problem/2056  풀이최소 시간을 구하는 문제이지만그래프 탐색을 한다고 생각해보면 선행해야 하는 작업 중 가장 느린 작업이 끝나는 시간을 반영해야 하기 때문에BFS를 진행하며 최대 시간을 구하는 방법을 생각했었다...import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.util.LinkedList;import java.util.List;import java.util.Queue;import java.util...
99클럽 코테 스터디 16일차 TIL (챌린저): [백준][Java] 2179 비슷한 단어 - 골드4
·
ProblemSolve/항해99 코테스터디
문제 보기https://www.acmicpc.net/problem/2179  풀이HashMap을 사용해 문제를 풀었다.입력 순서대로 단어와 인덱스를 넣었다.이 때 단어의 길이-1을 해가며 접두사들을 넣었다.우선순위가 높은 값(최대한 비슷한 단어)부터 넣기 위해서인데 이유는 아래에 나온다. for (int i = 0; i 0; j--) { String key = line.substring(0, j); if(key.length() s) break; if(key.length() == length && map.get(key) == s && i > t) break; s = map.get(key); t = i; length = key.length(); br..
스터디 앱 04 - CommonResponse, record 클래스
·
개인프로젝트/스터디 앱
CommonResponse@Builderpublic record CommonResponseDto(HttpStatusCode code, String message, T data) {}@Builderpublic record CommonErrorResponseDto(HttpStatusCode code, String message, String path, LocalDateTime timestamp) {}정형화된 response를 반환하기 위해 CommonResponseDto를 만들었다.네트워크 상태 코드, 메시지, 실질적으로 전달할 데이터로 구성되어 있다.Error response의 경우에는 데이터 대신 path(호출한 api를 나타낸다)와 타임스탬프를 담았다. 그런데 이런 DTO 클래스를 더 간편하게 만들어주..
99클럽 코테 스터디 15일차 TIL (챌린저): [백준][Java] 2665 미로만들기 - 골드4
·
ProblemSolve/항해99 코테스터디
문제 보기https://www.acmicpc.net/problem/2665  풀이bfs에 다익스트라 논리를 적용하면 풀 수 있다.특정 칸 까지 걸리는 최소 검은 방을 최단거리로 생각하면 된다. int[] dx = {-1, 1, 0, 0};int[] dy = {0, 0, -1, 1};Queue q = new LinkedList();int[][] dist = new int[N][N];for(int i = 0; i = N || y >= N) continue; if(matrix[x][y]) { if(dist[x][y] == -1 || dist[x][y] > cur[2] + 1) { dist[x][y] = cur[2] + 1; q.add(new int[]{x, y, dist..
99클럽 코테 스터디 14일차 TIL (미들러): [백준][Java] 14916 거스름돈 - 실버5
·
ProblemSolve/항해99 코테스터디
문제 보기https://www.acmicpc.net/problem/14916  풀이힌트를 보면 그리드, DP를 사용할 수 있는 문제인 것 같다.나는 DP가 더 익숙해서 DP를 사용하였다.즉 거스름 돈이 0부터 N원일 때까지 얼마가 나올지를 계산해보는 방법을 선택했다. int[] dp = new int[N 우선 0~5까지는 미리 값을 계산하여 넣어 놨다.혹시나 input으로 5보다 작은 값이 들어올 경우에도 dp 배열의 크기를 6으로 하도록 했다.여기서 -1이 나와야 하는 값의 경우 100000이라는, 절대 나올리 없는 임의의 큰 값을 넣었다. for (int i = 6; i 이후 반복문을 돌리며5원 더 작은 값에서 5원을 추가한 상황,2원 더 작은 값에서 2원을 추가한 상황 중 더 작은 경우를 골랐다.만..
99클럽 코테 스터디 13일차 TIL (미들러): [백준][Java] 27961 고양이는 많을수록 좋다 - 브론즈1
·
ProblemSolve/항해99 코테스터디
문제 보기https://www.acmicpc.net/problem/27961  풀이오늘은 쉬운 문제가 나왔다!우선 최대한 전체 복제 마법으로 N에 가까운 많은 고양이들을 만들고 일부분만 복제하여 N을 채우면 될 것 같다.그렇게 1에서부터 계속 2배 마법을 걸 경우, 2의 n승으로 늘어나게 된다. long i = N == 0 ? 0 : 1, k = 1;for(; k * 2 따라서 위와 같은 간단한 for문을 N보다 작거나 같을 때까지 돌리고 i를 ++하여 몇 승인제 체크하였다.i가 N이 0일 경우는 0, 아니면 1인데 이 이유는 입력으로 0이 들어왔을 때의 예외처리를 위해서이다. bw.write(i + (N > k ? 1 : 0) + "\n");출력부분이다.k값이 N과 같은 경우 부분 복제 마법을 쓸 필요..
99클럽 코테 스터디 12일차 TIL (챌린저): [프로그래머스][Java] 도넛과 막대 그래프 - level2
·
ProblemSolve/항해99 코테스터디
문제 보기https://school.programmers.co.kr/learn/courses/30/lessons/258711 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  풀이나는 문제가 너무 어려워서 거의 답을 보고 풀었다.혼자서 푸려고 했지만 계속 오답이 나왔다...일단 그래프들의 특징을 찾아야 한다. 8자 모양  8자 모양 그래프는 중간에 나가는 간선 두 개, 들어오는 간선 두 개가 있는 노드가 존재한다는 특징이 있다. 막대 모양 막대 모양 그래프는 들어오는 간선은 있지만 나가는 간선은 없는 노드가 있다는 특징이 있다.물론, 나가는 간선은 있지만 들어오는 간선은 없는 노드도 있다!그러나 생성한 ..
스터디 앱 03 - API 문서, 계획, jwt 인증/인가
·
개인프로젝트/스터디 앱
API 문서 작성이번엔 예외 처리를 포함해 API 문서를 작성하였다.전체 스크린 샷 대신 링크를 넣었다.https://working-fibre-2e0.notion.site/22cabb3eebd14dc5a103330a17be4194?v=1b88b312a27446da996119a787347c30&pvs=4 API | NotionMade with Notion, the all-in-one connected workspace with publishing capabilities.working-fibre-2e0.notion.site 입력 유효성 검사, jwt 인증 예외 처리에 대한 건 따로 넣지 않았다.  1차 개발 목표마감일: 11/22(금)개발 기간: 약 2주개발 목표: 로컬에서 실행되는 백엔드 애플리케이션 프론..