분류 전체보기
-
-
CS 스터디 - SpringCS 2023. 6. 20. 02:24
💎 이란 ? 문맥마다 다르게 사용된다. - Spring DI container - Spring framework - Spring Boot, framework 모두 포함한 생태계 자체 💎 Spring 왜 만들었을까? 핵심 컨셉은? "좋은 객체 지향 어플리케이션을 개발할 수 있게 도와주는 프레임워크" 자바 언어 기반의 프레임워크로써, 자바의 가장 큰 특징인 객체 지향 언어로써 가지는 강력한 특징을 살려내는 프레임워크 EJB(Enterprise Java Bean)가 컨테이너 역할 수행. 학습하기 어려워질정도로 복잡 -> 더 경량화되고 간소화된 컨테이너가 필요 -> EJB : 기업환경의 시스템을 구현하기 위한 서버 측 컴포넌트 모델이다. 일반적으로 업무 로직을 가지고 있는 서버 어플리케이션을 EJB라고 한다. ..
-
CS 스터디 - 데이터베이스CS 2023. 6. 14. 04:19
용어 정리 DB : 데이터의 집합 DBMS : 데이터베이스를 운영하고 관리하는 소프트웨어 이미지출처 : https://cocoon1787.tistory.com/769 테이블 : 행과 열로 이루어진 데이터의 집합 키 : 테이블에서 행의 식별자로 이용되는 값 - 후보키 : 유일성(key로 하나의 행 구분 가능) 최소성(최소 개수의 속성들로 구성)만족하는 속성들의 집합 - 기본키 : 후보키 중 선택한 키, 테이블에서 기본키는 오직 1개, Null 및 중복값 불가 - 대체키 : 후보키가 2개이상일 경우 기본키 외 다른 후보키들 - 외래키 : 다른 테이의 데이터를 참조하여 테이블의 관계를 연결하는 키, 참조될 테이블 A의 기본키 == 참조할 테이블 B의 외래키 - 슈퍼키 : 유일성은 만족하나 최소성을 만족하지 못..
-
프로그래머스 도둑질 - JavaJava/코딩테스트 2023. 5. 26. 19:41
https://school.programmers.co.kr/learn/courses/30/lessons/42897 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 로직 집이 원형으로 배치되어 있다는 것이 이 문제의 함정이다. 첫 번째 집에서 훔쳤는지 안 훔쳤는지 따라 마지막 집을 훔칠 수 있는 여부가 달라지기 때문이다. 그래서 첫 번째 집 턴 경우 / 안 턴 경우 2가지 모두 DP돌리고, 그 두가지 중 max 값 찾는 것으로 로직을 짠다. 점화식 DP[i] -> i번째 집까지 방문했을 때 얻을 수 있는 최대 금액 1) 첫 번째 집을 고른 경우에는 DP[0]..
-
백준 7569, 2573 - JavaJava/코딩테스트 2023. 5. 26. 17:18
백준 7569 토마토 - 기존 BFS 방식에서 z축이 새로 생겼다고 보면 된다. 3차원 배열에 토마토 저장, 원래 BFS쓸 때 정의하는 x,y축 이동방향에 추가로 z축 이동방향(위 아래) 까지 정의해준다. - 남은 안익은 토마토 개수 left 정의해주기. 처음부터 left가 0일 수도 있다. bfs 들어가기전에 이거 먼저 걸러내기 - 익은 토마토 위치들부터 큐에 넣어준다. - 따로 방문배열 만들지 않고 3차원 배열에 저장된 값이 0이면 아직 안 방문한 안익은 토마토라는 뜻이므로 이때만 큐에 넣어준다. 3차원 배열에 익은 시점을 저장하며 업데이트 - 큐를 다 돌았는데도 안 익은게 남았다면 -1, 다 익었다면 3차원 배열을 탐색하여 max값 찾은 후 -1을 해서 정답 출력. (1초부터 시작했기 때문에!) i..
-
[ SWEA ] 1954Java/코딩테스트 2023. 5. 19. 18:19
달팽이 숫자 문제 한 방향으로 쭉 -> 가고 더이상 못가면 방향을 전환하는 방법으로 푼다. isValid() 함수로 검사 + 해당 칸의 값이 0인지 확인 -> 아닐 경우 방향을 전환 이 때 isValid로 먼저 검사해야한다. map[x+dirX[dir]][y+dirY[dir]]를 먼저 조건의 앞에 넣어두면 벽 벗어나는 칸일 경우 바로 ArrayOutOfBound 뜨기 때문. 각 칸에는 1~n*n의 숫자를 채워넣기. import java.util.*; public class Solution { static int[] dirX = { 0, 1, 0, -1 }; static int[] dirY = { 1, 0, -1, 0 }; public static void main(String[] args) { Scann..
-
[ SWEA ] 1204, 1206, 9611Java/코딩테스트 2023. 5. 17. 17:14
1204 : 1000명의 학생들의 점수를 보고 가장 많이 등장한 점수 꺼내기 -> HashMap 사용해서 풀었다. 학생의 점수 + 빈도 수를 key, value 값으로 넣어두기 / map은 같은 key값이 들어오면 나중에 들어온 value로 덮어씌운다. 기존에 있던 빈도 수 scores.get() + 1해서 빈도수 + 1 이때 Map을 정렬해야 하는데, 문제 조건은 2가지가 있다. 1. 가장 많이 등장한 점수 2. 빈도수가 같은 점수가 있을 경우, 더 높은쪽을 선택. Map 자료구조에서 map.entrySet() : map의 모든 Key, Value 꺼낸다. ArrayList로 꺼내도 되고 LinkedList로 꺼내도 된다. 돌려보니 ArrayList가 메모리를 더 쓰고 시간을 덜 쓰는 것 같다. Lin..
-
HackerRank - PriorityQueueJava/코딩테스트 2023. 5. 11. 17:00
https://www.hackerrank.com/challenges/java-priority-queue/problem?isFullScreen=true Java Priority Queue | HackerRank Leran about Priority Queues in Java www.hackerrank.com 해당 문제에서는 Student 클래스를 PriorityQueue에 넣기 위해 Student 클래스에서 compareTo(Student o)를 구현하는 것이 관건이었던것 같다. cgpa(내림차순) -> name(알파벳 순) -> id(오름차순) 순으로 정렬하기. - cgpa 가 double 형이므로 리턴시 ?연산자로 정수 리턴해주기. 내림차순이므로 o.cgpa - this.cgpa > 0 ? 1 : -1..