분류 전체보기 290

#11279 : 최대 힙

풀이방법 사용된 것: 우선순위 큐 2023.05.17 자바의 PriorityQueue 클래스를 사용하면 되는 간단한 문제이다. 코드 Java(2023.05.17) import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Collections; import java.util.PriorityQueue; public class Main { public static void main(String[] args) throws IOException{ // TODO Auto-generated method stub // 입력값을 읽어오기 위한 BufferedReader Buffere..

[스프링부트] 파이어베이스 연동 & 데이터 저장 & 파일 업로드까지

서론 파이어베이스(Firebase)는 구글이 소유한 모바일 어플리케이션 개발 플랫폼이다. 어플리케이션 개발을 위한 다양한 기능을 제공한다. 토이프로젝트나 과제 등에 파이어베이스의 Firestore Database와 Storage를 사용하면, 돈 한 푼 내지 않고 원격 저장공간을 사용할 수 있다. 사용 용량, 요청 횟수 등의 지표가 일정 기준을 넘지만 않으면 무료로 이용할 수 있다. 예상치 못한 원인으로 인해 갑자기 지출이 발생하는 일이 AWS에 비해 적어서 좋다고 생각한다. 팀원과 데이터를 실시간으로 공유하며 작업해야 할 때 굉장히 편리하다. 그러나 Java 및 스프링부트로 파이어베이스를 사용하는 방법에 대한 자료는 찾기가 굉장히 어렵다. JavaScript 자료만 많고, Java 자료는 잘 보이지 않는..

#14244 : 트리 만들기

풀이방법 2023.05.15 이해하기가 조금 어렵지만, 이해하고 나면 구현하기 매우 쉬운 문제이다. 트리를 구현할 필요는 없다. 트리의 개념을 잘 이해하기만 하면 간단한 반복문 및 조건문으로 해결할 수 있다. 푸는 방법은 여러 가지가 있는데, 내가 사용한 방법만 설명하겠다. 리프가 2개여야 하는 경우와 리프가 3개 이상이어야 하는 경우로 나누어서 풀었다. 먼저, 리프가 2개인 경우, 모든 노드가 일직선으로 연결되어야 한다. 사이클을 만들 수 없으므로 리프가 2개일 수 있는 경우는 딱 이 경우 하나밖에 없다. 리프가 3개인 경우 트리를 만드는 방법은 매우 다양해지는데, 여러 방법 중 내가 선택한 것은 다음과 같다. 0번 노드를 중심으로 두고, 필요한 리프 개수만큼의 노드를 0번 노드에 따로따로 연결해준다...

EFUB 7주차 과제 Postman 테스트 캡처

ID를 기준으로 댓글 조회 특정 게시글에 댓글 추가 특정 유저가 단 댓글 조회 위의 캡처에서 anonymous 값은, 댓글이 달린 게시글의 익명 여부임. 댓글이 달린 게시글의 익명 여부까지는 리턴할 필요가 없을 것 같아서, MemberCommentsResponseDto를 수정하였음. 수정 후의 테스트 캡처는 아래와 같음. 삭제 테스트까지 다 마친 후이기 때문에, commentId 5번 댓글은 삭제되고 없음. 특정 게시글에 달린 댓글 조회 댓글 수정 댓글 삭제

#24416 : 알고리즘 수업 - 피보나치 수 1

풀이방법 사용된 것: 재귀 DP (동적 프로그래밍) 2023.04.05 재귀는 함수를 정의하여 구현하였다. DP는 main 메소드 안에 반복문을 적어 구현하였다. 단, 피보나치의 특성상 DP를 수행하지 않고 주어진 n에서 2를 뺀 수를 출력해도 정답이다. 정수형 변수 a에 재귀함수의 수행횟수를 저장하고, 정수형 변수 b에 DP의 수행횟수를 저장하였다. 재귀의 경우, 최초에 함수를 한 번 실행하면서 실행하므로 일단 a에 1을 더하고 시작하였다. 그 후, 함수 안에서 재귀를 한 번 할 때마다 a를 1씩 증가시켰다. DP의 경우, 덧셈이 한 번 수행될 때마다 b를 1씩 증가시켰다. 코드 Java(2023.04.05) import java.util.Scanner; public class Main { static..

5. DATABASE 2 - 더 배워보기

관계형 데이터베이스의 필요성 데이터를 저장할 때는 분산해서 저장하고, 불러올 때는 합해서 불러오는 것이 이번 회차에서 보여준 관계형 데이터베이스의 중심적인 특징이다. 이 점 덕분에 데이터의 유지보수가 훨씬 용이해진다. 예시를 들어서 설명해주셨는데, 요약하자면 다음과 같다. 강의 정보를 저장한 table이 있다고 하자. 강의 테이블 강의 id 과목명 교수명 정원 1 컴퓨터구조 김교수 30 2 이산수학 이교수 100 3 인공지능 박교수 50 4 데이터베이스 김교수 40 어느날, 김교수가 '김고수'로 개명을 하였다. 그럼 우리는 위의 표에서 1번 항복과 4번 항목 총 두 개 데이터의 교수명 값을 바꾸어줘야 한다. 만약 김교수가 더 많은 수업을 맡고 있었다면 수정해야 하는 데이터도 더 많았을 것이다. 관계형 데..

#2563 : 색종이

풀이방법 2023.03.19 도화지의 1x1 영역을 한 칸이라 생각해보자. 각 검은 색종이는 10x10 총 100칸을 차지한다. 주어지는 검은 색종이의 수는 최대 100장이다. 만약, 단순무식한 방법을 사용해서, 100장의 검은 색종이가 붙는 범위 총 10만 칸을 한 칸 한 칸 살펴서 정답을 알아낸다 해도, 우리는 (작은 상수) x 10만 번 정도의 연산만 하면 된다. 제한시간 내에 완료하기에 충분하고도 남는다. 그래서 그냥 단순무식한 방법으로 풀어보았다. 흰색 도화지의 어느 칸이 검은색으로 덮였고 어느 칸이 안 덮였는지 그 현황은 10x10 크기의 2차원 boolean 배열 plain에 저장하기로 하였다. 이 배열의 모든 칸의 초기값은 false이며 검은 색종이로 덮인 칸은 true, 덮이지 않은 칸은..