본문 바로가기

전체 글108

[프로그래머스(programmers)] (Lv3) 여행경로 알고리즘 문제 풀이 / 프로그래머스 (programmers) - 여행경로 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/43164 코딩테스트 연습 - 여행경로 [["ICN", "SFO"], ["ICN", "ATL"], ["SFO", "ATL"], ["ATL", "ICN"], ["ATL","SFO"]] ["ICN", "ATL", "ICN", "SFO", "ATL", "SFO"] programmers.co.kr 문제 풀이 이 코드는 유일하게 아직 미완성인 상태다. 실행시켜보면 문제 5,6개 정도 런타임에러가 난다. 모든 경우 다 맞다고 생각했는데 오류가나서 생각해보니, 시작지점이 같을 때, 도착 지점이 알파벳 순서가 빠르다고 무조건 그게 1순위가 아니였.. 2021. 5. 21.
[프로그래머스(programmers)] (Lv2) 전화번호 목록 알고리즘 문제 풀이 / 프로그래머스 (programmers) - 전화번호 목록 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/42577 코딩테스트 연습 - 전화번호 목록 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조 programmers.co.kr 문제 링크 class Solution { public boolean solution(String[] phone_book) { boolean answer = true; top : for(int i = 0; i < phone_book.length; i++) { for(int.. 2021. 5. 20.
[프로그래머스(programmers)] (Lv1) K번째 수 알고리즘 문제 풀이 / 프로그래머스 (programmers) - K번째 수 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/42748 코딩테스트 연습 - K번째수 [1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3] programmers.co.kr 문제 풀이 public int[] solution(int[] array, int[][] commands) { int[] answer = new int[commands.length]; for(int i = 0; i < commands.length; i++){ int[] arr = Arrays.copyOfRange(array, commands[i].. 2021. 5. 19.
[프로그래머스(programmers)] (Lv1) 완주하지 못한 선수 알고리즘 문제 풀이 / 프로그래머스 (programmers) - 완주하지 못한 선수 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/42576 코딩테스트 연습 - 완주하지 못한 선수 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수 programmers.co.kr 문제 풀이 public String solution(String[] participant, String[] completion) { String answer = ""; Arrays.sort(participant); Arrays.sort(complet.. 2021. 5. 19.
[프로그래머스(programmers)] (Lv2) 다리를 지나는 트럭 알고리즘 문제 풀이 / 프로그래머스 (programmers) - 다리를 지나는 트럭 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/42583 코딩테스트 연습 - 다리를 지나는 트럭 트럭 여러 대가 강을 가로지르는 일 차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 트럭은 1초에 1만큼 움직이며, 다리 길이 programmers.co.kr 문제 풀이 public static int solution(int bridge_length, int weight, int[] truck_weights) { int answer = 1; Queue wait = new LinkedList(); Queue c.. 2021. 5. 18.
[프로그래머스(programmers)] (Lv2) 프린터 알고리즘 문제 풀이 / 프로그래머스 (programmers) - 프린터 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/42587 코딩테스트 연습 - 프린터 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린 programmers.co.kr 이번 문제를 풀고나서 다른 사람들의 풀이를 살펴보는데 내가 짠 코드보다 한 단계 더 간편하게 풀 수 있어 그 풀이를 조금 응용해보았다. 문제 풀이 처음 시도 동일한 중요도 일 때, location의 위치를 구별해야하므로 check 이라는 변수를 두고 갱신되는 location의 위치를 .. 2021. 5. 17.
[프로그래머스(programmers)] Summer/Winter Coding(~2018) 배달 알고리즘 문제 풀이 / 프로그래머스 (programmers) - 배달 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/12978 코딩테스트 연습 - 배달 5 [[1,2,1],[2,3,3],[5,2,2],[1,4,2],[5,3,1],[5,4,2]] 3 4 6 [[1,2,1],[1,3,2],[2,3,2],[3,4,3],[3,5,2],[3,5,3],[5,6,1]] 4 4 programmers.co.kr 문제 풀이 public class delivery { public static int solution(int N, int[][] road, int K) { int answer = 0; int[][] order = new int[N][N]; for(int i .. 2021. 5. 16.
사이트맵 2021. 5. 15.
JAVA 로 다익스트라 구현하기 | 목적 ◦ 다익스트라 알고리즘 Java로 구현하기 | 시작하는 말 다익스트라의 개념, 순서가 이해가 안된다면 다익스트라란 무엇인가 이 포스트를 먼저 보고 오면 좋다. | 초기 설정 다익스트라를 만들기에 앞서 변수 두가지를 설정해줘야 한다. distance변수는 각 노드에 갈 수 있는 최단거리를 저장한다. visit변수는 해당 노드를 방문 했는지를 체크할 변수다. int distance[] = new int[N]; //최단거리들을 저장할 배열을 만든다. boolean visit[] = new boolean[N]; //해당노드 방문여부를 체크할 배열을 만든다. | 예제 (JAVA) public class Dijkstra { private static int n; private static int maps[.. 2021. 5. 13.
다익스트라(Dijkstra)란 무엇인가? ▏목적 ◦ 다익스트라 알고리즘 이해하기 ▏시작하는 말 프로그래머스에서 "배달"이라는 문제를 풀어보았는데, 이런 유형의 문제는 처음 접해봐서 그런지 어떻게 풀어야 할지 감조차 오지 않았다. 그래서 구글에서 여러 알고리즘들을 살펴보다 최단거리를 구하는 다익스트라를 알게 되었다. 이 방법이라면 이 문제를 해결 할 수 있을 것 같아 다익스트라를 충분히 이해하고, 다시 풀어보았는데 손쉽게 풀었다. 완벽히 다익스트라를 알게된 지금, 내가 직접 문제를 만들어 설명해보려 한다. ▏다익스트라(Dijkstra) 란 무엇인가? 다익스트라는 최단거리를 탐색하는 방법이다. 쉽게 말해 특정한 한 점에서 다른 모든 점까지 가는 경로의 최소를 구하는 것이다. 이것의 가장 큰 특징은 한 점 까지의 최단거리를 구할 때 그 전까지 구한 .. 2021. 5. 11.
ORM이란 무엇인가? "ORM" 그것이 알고싶다. ORM : Object Relational Mapping OOP(객체지향프로그래밍)에서 사용하는 객체 개념의 클래스와 RDB(Relation DataBase)에서 사용하는 데이터인 테이블을 매핑(연결) 해주는 것 이다. 쉽게 말해, 객체-관계 매핑을 의미한다. SQL구조의 데이터를 OOP적 구조의 형태로 매핑 시키게 되면 데이터를 다루는 방식의 차이에서 불일치가 발생하게 되는데, 이를 해결하기 위해 ORM을 통해 SQL문을 자동으로 실행하여 불일치를 해결한다. 따라서 ORM을 사용한다면 SQL문을 직접 짤 필요없이 데이터베이스를 조작할 수 있게 된다. ORM의 장단점 장점 객체지향적 코드로 개발자가 더 집중하게 해준다. 데이터 베이스를 SQL문이 아닌 클래스의 메서드를 사용하.. 2021. 5. 6.
JPA란 무엇인가? JPA를 제대로 이해하기 위해서는 ORM의 개념을 먼저 이해해야 한다. ORM은 객체와 관계형 데이터베이스를 자동으로 매핑(연결)해주는 역할이다. 자세한 내용은 ORM 포스트에서 보면 된다. JPA란 Java Persistence API로, 프로그램을 종료한 후에도 데이터가 남아있는, 데이터 지속성 기능을 제공한다. java 기반의 ORM을 사용하기 위한 인터페이스를 모아둔 것으로, 가장 많이 사용하는 구현체에는 Hibernate 가 있다. 내가 작년 2020년 말에 airbnb 클론코딩 프로젝트를 만들었다. 그 과정에서 숙소, 회원 등의 정보들을 Mybatis를 사용하여서 많은 VO, DAO등을 반복적으로 만들었고, SQL문들을 직접 작성하면서 많은 문법적인 이슈들이 발생했다. public class .. 2021. 5. 2.
반응형