차곡차곡 성 쌓기
article thumbnail
Arrays.sort()와 Collections.sort() 차이
CS/자바 2024. 1. 10. 14:37

Arrays.sort() 배열을 정렬하는데 사용 ('int [] ', 'String []' 등) 기본 데이터 타입 배열, 객체 배열 모두에 사용 가능 주어진 배열 직접 변경 Collections.sort() 컬렉션을 정렬하는 데 사용('List', 'Set' 등) 주어진 컬렉션을 직접 변경 둘 다 Comparable 인터페이스나 Comparator 인터페이스 중 하나를 구현하고 있어야 한다. 이 둘의 차이는 무엇일까? 알아본다. Comparable 인터페이스 객체가 자연스러운 순서를 갖도록 하는 것이 목표 객체 자체가 비교 로직을 구현 `compareTo` 메소드 제공해야함 메소드는 현재 객체가 다른 객체보다 작으먄 음수, 같은 0, 크면 양수를 반환해야 함 List people = new ArrayLi..

article thumbnail
[프로그래머스] Hash : 베스트 앨범 - L3

1. 문제 문제 요약 - 베스트 앨범 수록곡의 고유번호를 차례대로 리턴 - 베스트 앨범 수록 조건 1. 속한 노래가 많이 재생된 장르부터 수록 한다. 2. 장르 별 가장 많이 들은 2곡을 수록한다. 2곡 미만일 경우 1곡만 수록한다. 2. 접근 우선 무엇을 해야하는지 생각한다. 크게 2가지가 있다. 1. 속한 곡의 재생 수가 많은 순으로 장르 정렬 2. 장르별로 가장 많이 재생된 곡 2개 선정 먼저 장르를 어떻게 해시를 이용하여 정렬할 수 있을까 고민했다. 크게 고민된 부분은 장르는 문자열이다 보니 어떤 자료구조를 사용하여 정렬할 지였다. 만약 해시 맵을 이용하여 을 저장하면, 정렬할 때가 문제이다. 곡들의 총 재생 수인 value만 이용하여 정렬하게 될 텐데, value를 통해서 key를 찾을 수 있어..

article thumbnail
[CoMirror] #1 : 얼굴 인식 모델 선정하기
개발 일지 2024. 1. 9. 23:11

배경 동기들과 프로젝트를 진행하는 중 얼굴 인식을 통한 화원관리 기능을 구현하기 위해 기존에 존재하는 여러 얼굴 인식 모델을 찾아봤었다. 이때 내가 구현해야 되는 것은 Face recognition으로 인식이 아닌 식별이었다. 얼굴 인식에는 face detectoin, fece recogntion 등 용어가 존재하는데 헷갈리므로 용어 정리를 하고가자! 1. Face Detection 사람의 얼굴 자체를 감지하는 일이다. 사진이나 영상에서 사람이 얼굴이 있는지, 어디에 있는지 찾는 작업이다. 2. Face Recognition 누구의 얼굴인지를 식별하는 작업이다. 이 중 속하는 개념으로 face verification과 face indentification이 있다. • Face verification 입력..

article thumbnail
[프로그래머스] 의상 : Hash - L2

1. 문제 2. 접근 이 문제랑 매우 비슷한 백준의 '패션왕 신혜빈' 문제랑 매우 비슷해서 그때의 기억을 복기하면서 접근했다. 각 옷의 종류마다 크게 2가지를 선택할 수 있다. 해당 종류의 의상을선택하지 않거나 의상 중 하나를 고르는 것이다. 예제 1를 봤을 때 headear는 2개, eyewear는 1개의 의상이 있다. 이때 headear에서는 아예 선택하지 않거나, yellow_hat을 선택하거나 green-tuban을 선택할 수 있는 경우로 총 3가지가 있다. 같은 옷의 종류는 무조건 하나 이하만 선택할 수 있기 때문이다. 이를 일반화 시키면 i 종류에서 선택할 수 있는 경우 = i 종류의 의상 개수 +1(선택 안하는 경우) 이다. 모든 경우의 수를 구하기 위해 종류마다 경우의 수를 구한 후 곱하면..

article thumbnail
[프로그래머스] 전화번호 목록 : Hash - L2

1. 문제 문제 요약 - 어떤 번호가 다른 번호의 접두어인 경우를 구하라 처음 시도 때 가장 첫 번째 문자열이 다른 문자열들의 접두어가 되는지 판단하는 줄 알고 접근했다가 계속 오답이 나오길래 꽤 생각했다. 문제를 다시보니 "어떤 번호"가 "다른 번호"의 접두어인지 판단하는 문제였다. 문제 요약하는 습관을 기르자! 2. 접근 해시 알고리즘으로 분류되어 있어서 해시를 써야될 것 같은데 도저히 풀 방법이 생각나지 않았다. contains() 함수를 이용해야 될 것 같아서 고민해봤지만 '접두어'인 조건을 어떻게 풀어야할지 몰랐다. contains() 함수를 사용하여, 문자열이 다른 문자열의 포함되는지 알아도 오직 문자열이 시작할 때 포함하고 있어야하기 때문에 어려웠다. 결국 못 풀고 다른 사람의 풀이를 보았다..

article thumbnail
[프로그래머스] 폰켓몬 : Hash - L1

문제 : 폰켓몬 당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다. 홍 박사님 연구실의 폰켓몬은 종류에 따라 번호를 붙여 구분합니다. 따라서 같은 종류의 폰켓몬은 같은 번호를 가지고 있습니다. 예를 들어 연구실에 총 4마리의 폰켓몬이 있고, 각 폰켓몬의 종류 번호가 [3번, 1번, 2번, 3번]이라면 이는 3번 폰켓몬 두 마리, 1번 폰켓몬 한 마리, 2번 폰켓몬 한 마리가 있음을 나타냅니다. 이때, 4마리의 폰켓몬 중 2마리를 고르는 방법은 다음과 같이 6가지가 있습니다. 당신은 최대한 다양한 종류의 폰켓몬을 가지길 원하기 때문에, 최대한 많은 종류의 폰켓몬을 포함..

article thumbnail
[프로그래머스] 완주하지 못한 선수 : Hash (L1)

문제 Hash 알고리즘 - 완주하지 못한 선수 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 비교 | 나의 풀이 import java.util.*; class Solution { public String solution(String[] participant, String[] completion) { HashMap names = new HashMap(); // 1. 입력 받기 for(int i=0; i 0이 아닐 때를 출력 3-2. keySet()으로 for문 바로 이용 for (String player : completion) hm.put(playe..

article thumbnail
[백준] 최단 경로 : 1753 : Java - 다익스트라(Dijkstra)
알고리즘/백준 2023. 12. 28. 02:18

1. 문제 1753번: 최단경로 첫째 줄에 정점의 개수 V와 간선의 개수 E가 주어진다. (1 ≤ V ≤ 20,000, 1 ≤ E ≤ 300,000) 모든 정점에는 1부터 V까지 번호가 매겨져 있다고 가정한다. 둘째 줄에는 시작 정점의 번호 K(1 ≤ K ≤ V)가 www.acmicpc.net - 주어진 한 정점 부터 각 모든 정점 최소 경로 구하기 2. 해결 포인트 이 문제는 주어진 노드의 제한이 크기 때문에 정점마다 탐색을 진행할 수 없다. 최소 경로 문제에 쓰이는 알고리즘이 필요하다. 한 노드에서 각 모든 노드까지 가는 최단 경로를 구할 수 있는 다익스트라 알고리즘을 쓴다. 다익스트라(Dijkstra) 알고리즘 한 노드에서 각 모든 노드까지 가는 최단 경로를 구하는 알고리즘. 음의 간선을 포함할 수..

article thumbnail
[백준] 9934 완전 이진트리: Java - S1
알고리즘/백준 2023. 12. 26. 20:47

9934번: 완전 이진 트리 상근이는 슬로베니아의 도시 Donji Andrijevci를 여행하고 있다. 이 도시의 도로는 깊이가 K인 완전 이진 트리를 이루고 있다. 깊이가 K인 완전 이진 트리는 총 2K-1개의 노드로 이루어져 있다. (아래 www.acmicpc.net 1. 알고리즘 완전 이진 트리 2. 해결책 중위 순회의 중심이 루트인 것을 이용 3. 접근한 방법 해야될 일 : 중심 순회 결과로 트리 구성하라 중위 순위 결과를 가지고 알아낼 수 있는것이 뭐지? DFS 탐색과 결과가 같다. 하지만 루트는 어떻게 알아내고, 트리관계는 어떻게 알아내지? -> 불가능 인덱스를 이용할까. 이 문제는 완전 이진 트리. 자식 노드는 부모 인덱스 i의 2_i, 2_i+1이다. 부모 인덱스는 어떻게 구하지? 이 문제..

article thumbnail
[백준] 연구소 : 14502 : Java - 그래프 탐색 (G4)
알고리즘/백준 2023. 12. 14. 21:57

1. 📄 문제 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크 www.acmicpc.net - 반드시 3개의 벽을 세워서 확보할 수 있는 안전 구역의 최댓값을 구하기 2. 🤔 어떻게 풀까? 문제를 처음 봤을 때 대체 어떠한 방법으로 벽을 세울 위치를 정해야될지 난감했다. 바이러스를 중심으로 한다해도 어렵고, 벽을 중심으로 해도 어렵고.. 모르겠다가 넉넉한 시간과 작은 N과 M의 개수를 보고 완전 탐색을 생각했다. 그후 과연 시간 조건을 충족할 수 있을지 계산을 해보았고 아주 넉넉했다. 그래서 벽을 세울 수 있는 모든 경우의 수로 벽을 세우고, BFS ..

728x90