Java 9

[백준][JAVA] 9461 - 파도반 수열 - DP

📌 문제백준 | 파도반 수열 | SILVER 3 | DPhttps://www.acmicpc.net/problem/9461 📌 문제 탐색하기정삼각형이 나선(오른쪽 시계방향)으로 계속 돌면서 모양을 만듬  📌 알고리즘P(N)이 구현되는 모습이, 그 전의 값들로부터 영향을 받아 구현되기 때문에 이 문제는 ‘DP’ 알고리즘으로 풀 수 있다.이를 구현하기 위해, Memoization 을 활용한다.example) P(N) = 1, 1, 1, 2, 2, 3, 4, 5, 7, 9N012345678P(N)011122345       P[1] + P[5]P[2] + P[6]P[3] + P[7]즉, P(N) = P(N-5) + P(N-1) (단, N>=5)  📌 코드 설계하기TEST 입력MEMOIZATION 기법을 ..

알고리즘/백준 2024.11.26

[프로그래머스][JAVA] 소수 찾기 - dfs

📌 문제프로그래머스  | 소수찾기 | level2 | 완전탐색https://school.programmers.co.kr/learn/courses/30/lessons/42839 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  📌 문제 탐색하기출력 : 소수를 몇개 만들 수 있는지 알아내기각 종이에 적힌 숫자 배열 numbers에 따라, 소수 몇개 만드는지 확인하기ex) 17 = 7, 17, 71 📌 알고리즘numbers를 먼저 각 숫자로 배열로 분리한 후에완전탐색(dfs)를 통해 깊이우선탐색으로 숫자를 활용한 경우들의 모두 찾고numbers가 1~7까지의 길이이기에 아무리 많은 완전탐색이더라도, 7!..

[BOJ][JAVA] 두 스티커-16937-완전탐색

📌 문제백준 두 스티커 | 실버 3#구현 #브루트포스 알고리즘 #기하학 #많은 조건 분기https://www.acmicpc.net/problem/16937  📌 문제 탐색하기입력값H * W 크기 모눈종이 스티커 N개출력값스티커가 붙여진 넓이의 최댓값모눈종이는 1*1 크기칸스티커가 접하는 것이 가능하고, 90도 회전시키는 것 가능모눈종이를 벗어나는 건 불가능  📌 알고리즘 설정문제에서 모든 입력값들이 100이하이므로, 최대 사이즈가 10000까지만 나올 예정스티커는 2개를 골라야하므로, n이 100이니까 100 * 99 = 9900개의 경우의 수가 나올 예정이때, 스티커가 모눈종이 H*W 칸에 또 들어가야하므로 이 경우를 세야함스티커는 회전이 가능하다고 했으므로, 총 4가지 방안으로 스티커 부착 가능..

알고리즘/백준 2024.11.18

Call By Value & Call By Reference 정리

정렬에 대해서 다시 공부하던중.. swap 함수를 작성하면서 Call By Value와 Call By Reference의 차이점을 정확히 알지 못한다는 사실을 깨닫고 지금이라도 공부해야겠다 생각했다.. 2024년도에는 모르는 것들을 꼼꼼하게 챙겨갈 수 있는 해가 되어야지 !! Call By Value : 값에 의한 호출 public class CallByValue { public static void main(String[] args) { int a = 1; int b = 2; int temp = a; a = b; b = temp; System.out.println("a: "+a+" b: "+b); // a: 2 b: 1 } } Call By Reference : 주소에 의한 호출 public class..

자바, JSP, 스프링, 스프링부트란?

최근 자주 언급되는 언어부터 프레임워크까지 개념 정리를 하고 넘어가고자 한다.이를 주로 사용하는 백엔드 개발자가 되기 위해선 꼼꼼히 정확하게 이해해보자 🌱 Java public class JavaProject { // Java를 처음 접하면서 보게되는 코드 public static void main(String[] args) { System.out.println("Hello World"); } }객체지향적 프로그래밍 언어스프링의 근간이 되는 언어(한글)스프링은 자바 뿐 아니라 코틀린, 그루비로도 사용할 수 있으나 여기서는 자바로 진행스프링 자체도 거의 대부분 자바로 만들어져 있음 JSP (Java Server Page)자바로 프론트엔드를 엮어서 사용하는 개념프론트와 백이 모두 JAVA를 사용해서 페이지를..

9251: LCS(JAVA)

9251번: LCSLCS(Longest Common Subsequence, 최장 공통 부분 수열)문제는 두 수열이 주어졌을 때, 모두의 부분 수열이 되는 수열 중 가장 긴 것을 찾는 문제이다.https://www.acmicpc.net/problem/9251 코드 설명fir : 첫번째 문자열firLen : fir의 길이sec : 두번째 문자열 secLen : sec의 길이lcs : LCS를 구현한 함수LCS란?Longest Common subsequence : 최장 공통 부분 서열두 서열이 주어졌을 때 두 서열 중 공통인 부분 서열 중 가장 길이가 긴것exampleACAYKPCAPCAK⇒ ACAK (최장공통부분서열)public static int lcs(char[] fir, char[] sec,int fi..

알고리즘/백준 2023.09.01

[JAVA] 입출력Stream이란?

Stream이란?통로역할 단방향으로 데이터가 흐르는 것으로, 입력 스트림에서 출력스트림을 통해 데이터를 입출력한다. Stream의 종류바이트 Stream : 그림, 멀티미디어, 문자 등 모든 종류의 데이터를 입출력할 때 사용바이트입력스트림 : InputStream - read() : 바이트 단위로 읽기바이트출력스트림 : OutputStream - writer() : 바이트 단위로 쓰기(출력)ex) 파일에서 바이트데이터를 읽는다? FileInputStreamex) 파일에서 바이트데이터를 저장하려면? FileOutputStreamint data = System.in.read(); System.out.println((char)data); int -> byte() byte() -> int //너무 복잡해져버림 ..

DAO DTO Repository

DAO (Data Access Object) DB의 data에 접근하기 위한 객체 DB에 접근하기 위한 로직을 분리하기 위해 사용 직접 DB에 접근하여 data를 삽입, 삭제, 조회 등 조작할 수 있는 기능 수행 MVC 패턴의 Model에서 이와 같은 일을 수행 Repository DB에 접근하기 위한 객체 DAO 와 Repository의 상관관계 ?차이점 : 제공/관리(매핑)하는 주체의 차이에 따라 달라짐⇒ DAO : SQL에 대한 매핑 (매핑 레벨 : SQL) ← Persistence Layer(영속성) 에 대한 추상화 ⇒ Repository : 자바 객체를 테이블에 매핑 (매핑 레벨 : 객체) ← Domain Layer에 대한 추상화 공통점 : DAL (Data Access Layer, DB 관련 ..