전체 글 16

[프로그래머스] 베스트앨범 (LEVEL 3)

문제링크 문제접근 ❓ HashMap 장르별 재생곡들을 저장하기위해서 구조를 가지는 Map 자료구조를 사용 PriorityQueue sort 메소드를 따로 사용하지 않고 재생횟수를 정렬하기 위해서 사용 Solution import java.util.Map; import java.util.HashMap; import java.util.PriorityQueue; import java.util.Collections; import java.util.List; import java.util.ArrayList; class Solution { class Music implements Comparable { int no; int play; public Music(int no, int play) { this.no = no..

[백준] 빙산(골드4)

문제링크 문제접근 ❓ bfs 👌 1. 남아있는 빙산이 있는지 판별하는 메서드 👌 2. 일년 뒤 녹아버린 빙산의 모습을 구하는 메서드 👌 3. 빙산이 몇덩어리인지 구하기위해서 bfs 탐색으로 방문처리하는 메서드 오답노트 ❓ 오답 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.Queue; import java.util.StringTokenizer; /** * @author comkkyu * @since 22. 1. 17 * * 백준 2573 - 빙산 * https://www.acmicpc.net/prob..

알고리즘/백준 2022.01.17

[백준] 바이러스(실버3)

문제링크 문제접근 ❓ bfs dfs 방문체크를 하면서 연결된 컴퓨터에 대해서 완전탐색을 하고 새로운 컴퓨터를 탐색할 때마다 cnt를 증가시켜서 감염된 컴퓨터의 수를 구하면 되는 쉬운문제였다. Solution import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.LinkedList; import java.util.Queue; import java.util.StringTokenizer; public class B2606_Main { private static ArrayList[] adjList; private stat..

알고리즘/백준 2022.01.14

[gradle] dependency 추가할 때 compile 과 implementation의 차이

Compile vs Implementation gradle springboot demo 프로젝트를 진행하면서 gradle dependency 관련해서 검색을 하다 보면 어떤 글에서는 implementation 을 사용하고 어떤 글에서는 compile 을 사용하는 경우가 있다. 하지만 gradle 7.3.2 버전으로 demo 프로젝트를 진행하면서 compile 로는 실행되지 않아서 무슨 차이가 있는지 알아보기로 했다. 공식 문서에는 꽤 간단하게 설명되어있지만, 정말 바로 알아들을 수 없었기에.... 검색을 통해서 해당 내용에 대해 정리하고자 한다. A를 의존하고 있는 모듈이 B, B를 의존하고 있는 모듈이 C 라고 가정하자. Compile or api 사용할 경우 A라는 모듈을 수정하게 되면, 이 모듈을 ..

[프로그래머스] 오픈채팅방(LEVEL 2)

문제링크 문제접근 ❓ HashMap 오답노트 ❓ 오답 코드 import java.util.*; class Solution { List answers; // 채팅방 입/퇴장 기록 리스트 Map idMap; // 채팅방에 접속한 이력이 있는 아이디 map final String COME_IN = "님이 들어왔습니다."; final String GO_OUT = "님이 나갔습니다."; public String[] solution(String[] record) { String[] answer = {}; answers = new ArrayList(); idMap = new HashMap(); for (String s : record) { String[] arr = s.split(" "); // arr[0] : 명령..

[gradle] 기본개념, 특징, 패키지 구조, 간단한 사용법

Gradle Gradle은 Groovy를 기반으로 한 빌드 도구이다. Ant 와 Maven 과 같은 이전 세대 빌드 도구의 단점을 보완하고 장점을 취합하여 만든 오픈소스로 공개된 빌드 도구이다. 참고링크 : Gradle (github) Ant XML 기반으로 빌드 스크립트를 작성한다. 자유롭게 빌드 단위를 지정할 수 있다. 간단하고 사용하기 쉽다. 유연하지만 프로젝트가 방대해지는 경우 스크립트 관리나 빌드 과정이 복잡해진다. 생명주기(Lifecycle)을 갖지 않아 각각의 결과물에 대한 의존관계 등을 정의해야 한다. Maven XML 기반으로 작성한다. 생명주기(Lifecycle)와 프로젝트 객체 모델(POM, Project Object Model)이란 개념이 도입됐다. Ant의 장황한 빌드 스크립트를 ..

[JPA] 기본개념, 동작과정, 특징

JPA Java Persistence API 의 약자로 자바에서 ORM(Object-Relational Mapping) 기술 표준으로 사용되는 인터페이스의 모음이다. 즉, 실제적으로 구현된 것이 아니라 구현된 클래스와 매핑을 해주기 위해 사용되는 프레임워크이다. JPA를 구현한 대표적인 오픈소스로는 Hibernate가 있다. ORM(Object-Relational Mapping)과 SQL Mapper ORM은 DB 테이블을 자바 객체로 매핑함으로써 객체간의 관계를 바탕으로 SQL을 자동으로 생성하지만 Mapper는 SQL을 명시해주야 한다. ORM은 RDB의 관계를 Object에 반영하는 것이 목적이라면, Mapper는 단순히 필드를 매핑시키는 것이 목적이라는 점에서 지향점의 차이가 있다. JDBC JD..

[프로그래머스] 입국심사(LEVEL 3)

문제링크 문제접근 ❓ 이분탐색 💡 심사하는 시간은 1부터 max(times[i]) * n 까지 존재한다. 모든 사람을 심사할 수 있는 최소 시간을 찾는 것이 이 문제의 해답이다. 1 ~ max(times[i])*n 사이의 적절한 값을 찾아야 하고 상수값의 범위가 10억 이기때문에 굉장히 크게 주어질 수 있는 상황이다. 따라서 최대한 시간을 단축해야하는 문제이다. 그래서 이진탐색으로 1 ~ max(times[i])*n 사이에서 값을 찾는 것이다. mid 값을 통해서 mid 시간안에 처리할 수 있는 총 사람수를 구하고 (mid / times[i] 연산을 통해서) [해당시간안에 처리할 수 있는 사람 수] 와 [목표 사람수]를 비교한다. [처리할수 있는 사람수]가 [처리해야되는 사람수]보다 많으면 시간을 너무 ..

[Web] 웹의 동작 원리

①② 사용자가 웹 브라우저를 통해 찾고 싶은 웹 페이지의 URL 주소를 입력함. ③ 사용자가 입력한 URL 주소 중에서 도메인 네임(domain name) 부분을 DNS 서버에서 검색함. ④ DNS 서버에서 해당 도메인 네임에 해당하는 IP 주소를 찾아 사용자가 입력한 URL 정보와 함께 전달함. ⑤⑥ 웹 페이지 URL 정보와 전달받은 IP 주소는 HTTP 프로토콜을 사용하여 HTTP 요청 메시지를 생성함. 이렇게 생성된 HTTP 요청 메시지는 TCP 프로토콜을 사용하여 인터넷을 거쳐 해당 IP 주소의 컴퓨터로 전송됨. ⑦ 이렇게 도착한 HTTP 요청 메시지는 HTTP 프로토콜을 사용하여 웹 페이지 URL 정보로 변환됨. ⑧ 웹 서버는 도착한 웹 페이지 URL 정보에 해당하는 데이터를 검색함. ⑨⑩ 검색..

CS/web 2021.03.15

[서산 스타벅스] 오랜만에 카페에서 포스팅하고 알고리즘 공부

오늘 날씨가 정말 좋아서 점심먹고 호수공원 카페에 나왔어요~ 집에서 스타벅스 카페를 가려면 호수공원을 지나가야 하는데 오늘은 평소와는 다르게 가운데 다리를 통과해서 갔습니다. 날씨가 정말 좋지 않나요? 이제는 겨울이 끝나고 (추운게 정말 싫어요...!) 봄이 왔어요. 하루빨리 코로나가 끝나고 여행을 다니고 싶어요 ㅜㅜ 서산 호수공원에는 야생오리 말고도 집오리를 키우고 있어요. 밤마다 호수공원에서 운동을할 때 찾아보시는 것도 쏠쏠한 재미가 있어요~ 창가자리에 앉아서 밖을 보면서 글을 올리고 있어요~ 날씨가 맑은 만큼 많은 사람들이 나와서 운동을 하고 카페에도 많은 손님들이 있네요. 좋은 경치를 보면서 오늘도 열심히 취업준비를 해보겠습니다!

일상 2021.03.10