본문 바로가기

전체 글133

[코딩테스트/백준 알고리즘] 2606번 - 바이러스 (Java, 자바 풀이) 문제 https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net 문제 설명 문제 풀이 BFS를 활용한 그래프 탐색으로 해결했다. 코드 import java.util.*; class Main { static Queue q = new LinkedList(); static List gphList = new ArrayList(); static boolean[] visit = new boolean[101]; static int count = 0; public stati.. 2022. 12. 15.
[스프링 공부/스프링 입문] 웹 어플리케이션 계층 구조 (DTO와 Domain의 차이) 웹 어플리케이션의 계층 구조는 위와 같다. 이 중에 도메인 객체가 좀 생소하기도 하고 DTO와 Domain의 차이가 무엇인지 궁금해져서 자세하게 알아보기로 했다. 1. Domain과 DTO 1) Domain DB 테이블과 매칭되는 클래스, DB 테이블의 칼럼을 필드로 가지고 있음 데이터가 변경되는 것을 막기 위해 setter가 존재하지 않음 "@Entity" annotation을 사용해서 Domain임을 나타냄 2) DTO(Data Transfer Object) 계층간 데이터 교환을 위해 사용하는 객체 Domain의 데이터를 복사하여 전달함 데이터를 가공, 변경할 일이 없기 때문에 setter가 없음 setter가 아닌 생성자로 데이터를 받음 toEntity() 메서드를 생성하여 DTO를 Entity로 .. 2022. 12. 14.
[스프링 공부/스프링 입문] 템플릿 엔진 (JSP와 Thymeleaf) 강의를 수강하다가 강사님께서 템플릿 엔진으로 Thymeleaf를 사용하시는 것을 봤다. 나는 그전까지 JSP를 주로 사용했기에 두 개의 차이가 무엇인지 궁금해졌다. 1. 템플릿 엔진(Template Engine)이란 템플릿 엔진은 동적인 페이지를 제작하기 위해 사용한다. 동적인 페이지는 정해진 템플릿에 데이터를 더해서 가공한 결과를 사용자에게 제공하지만, 정적인 페이지는 개발자가 미리 만들어둔 페이지를 그대로 제공한다. 2. 템플릿 엔진의 종류 1) 서버 사이드 템플릿 엔진 서버에서 DB 또는 API에서 가져온 데이터를 미리 정의된 템플릿에 넣어 HTML 문서로 만들고 이를 클라이언트에 전달해준다. HTML 코드에서 고정적으로 사용되는 부분은 템플렛으로 만들어두고 동적으로 생성되는 부분만 템플릿의 특정 .. 2022. 12. 14.
[코딩테스트/백준 알고리즘] 1927번 - 최소 힙 (Java, 자바 풀이) 문제 https://www.acmicpc.net/problem/1927 1927번: 최소 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net 문제 설명 문제 풀이 처음에 패기있게 바이너리 트리를 직접 구현했으나 시간초과가 나왔다. 그래서 어쩔수 없이 우선순위 큐를 사용해서 구현했다. 근데 같은 로직을 switch문으로 구현하면 시간 초과가 나고 if문으로 해결해야 성공이 됐다. switch가 if에 비해 실행시간이 빠른 걸로 알고 있는데 의외였다. 아마 else랑 default의 속도 차이가 있지 않을까 추측해.. 2022. 12. 14.
[코딩 테스트/ 백준 알고리즘] 17219번 - 비밀번호 찾기 (Java, 자바 풀이) 문제 https://www.acmicpc.net/problem/17219 17219번: 비밀번호 찾기 첫째 줄에 저장된 사이트 주소의 수 N(1 ≤ N ≤ 100,000)과 비밀번호를 찾으려는 사이트 주소의 수 M(1 ≤ M ≤ 100,000)이 주어진다. 두번째 줄부터 N개의 줄에 걸쳐 각 줄에 사이트 주소와 비밀번 www.acmicpc.net 문제 설명 코드 import java.util.*; import java.io.*; class Main { public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWr.. 2022. 12. 13.
[코딩 테스트/ 백준 알고리즘] 11399번 - ATM (Java, 자바 풀이) 문제 https://www.acmicpc.net/problem/11399 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net 문제 설명 코드 import java.util.*; class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); int time = 0; List list = new ArrayList(); //입력 for(int i = 0; i < N; i++) { list.add(sc.nextIn.. 2022. 12. 12.