본문 바로가기

전체 글154

Set에 대하여 Set은 중복을 없애기 위해 사용한다. Set의 구현체로는 HashSet, LikedHashSet, TreeSet이 있다. HashSet: 순서x, 중복x LikedHashSet: 순서o, 중복x TreeSet: 오름차순, 중복x HashSet intHashSet = new HashSet(); LinkedHashSet intLinkedHashSet = new LinkedHashSet(); TreeSet intTreeSet = new TreeSet(); for (int i : new int[] { 3, 1, 8, 5, 4, 7, 2, 9, 6}) { intHashSet.add(i); intLinkedHashSet.add(i); intTreeSet.add(i); } Set strHashSet = new Ha.. 2024. 4. 16.
Intellij 설정 Intellij UI 바꾸기 Terminal git bash로 바꾸기 2024. 4. 16.
항해 99 19일차( 신고 결과 받기 / 프로그래머스) 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1 번째 시도 이 문제 자체는 쉬웠지만 자료구조에 대해 고민을 많이 했다. Key: 신고당한 사람 Value: 신고한 사람 reportMatching(HashMap) Key: 메일 받은 사람 Value: 메일 받은 횟수 lMap(LinkedHashMap) import java.util.*; class Solution { public Collection solution(String[] id_list, String[] report, int k) { ArrayList reportMatching = new Ar.. 2024. 4. 16.
Queue에 대해서 Queue의 구조는 한쪽에서는 삽입만 일어나고 한쪽에서는 삭제만 하는 자료구조 입니다. 즉, 먼저 들어간 것이 먼저 나오는 FIFO 구조입니다. Queue 인터페이스를 구현하는 대표적인 두 가지 클래스는 LinkedList와 ArrayDeque입니다. 큐를 배열이 아닌 LinkedList로 구현한 이유 요소의 추가 및 제거 시 기존 배열을 재구성할 필요 없이 노드의 연결만 변경하면 됩니다. 이로 인해 요소의 추가 및 제거(특히, 앞/뒤)가 상수 시간(O(1))에 이루어집니다. 이유가 뭔가하면 배열로 구현한 큐의 경우 내부에서 Object[] 배열을 담고있고, 요소가 배열에 들어있는 양에 따라 용적(배열 크기)을 줄이거나 늘려주어야 하고, 큐를 선형적인 큐로 구현했을 경우 요소들이 뒤로 쏠리기 때문에 이러.. 2024. 4. 15.
[프로그래머스] 무인도 여행, 자바 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1 번째 시도 dfs가 익숙치 않아 일단 제 생각대로 dfs를 짜보겠습니다. import java.util.*; class Solution { boolean[][] visited; public int[] solution(String[] maps) { visited = new boolean[maps.length][maps[0].length()]; ArrayList resultList = new ArrayList(); for(int i =0 ; i< maps.length; i++){ for(int j =0;.. 2024. 4. 15.
[프로그래머스] 택배상자, 자바 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1 번째 시도 문제가 장황해서 어려워 보일 수 있지만, 택배상자의 우선순위 배열을 만들고 우선순위 배열을 탐색하다 부합하는 숫자가 있으면 count하고 없으면 stack에 보관하는 문제이다. import java.util.*; class Solution { public int solution(int[] order) { int present = 0; int result = 0; Stack stack = new Stack(); int[] priorty = new int[order.length]; for(in.. 2024. 4. 15.
항해 99 18일차 TIL( 대충 만든 자판 / 프로그래머스 ) 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1 번째 시도 자료구조는 HashMap을 사용한다. HashMap에 알파벳마다 눌러야 하는 최소 횟수를 저장한다. Keymap의 알파벳을 탐색하며 알파벳마다 눌러야 하는 최소 횟수를 업데이트 해간다. import java.util.*; class Solution { public int[] solution(String[] keymap, String[] targets) { int n = keymap.length; HashMap map = new HashMap(); for (int i = 0; i < n; i.. 2024. 4. 15.
2개 이하로 다른 비트 / 자바 / 프로그래머스 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1 번째 시도 완전탐색을 시도하려다가 numbers의 길이를 보고 시간초과를 직감하여 완전탐색은 포기하였습니다. 이런경우 규칙을 찾는 것이 중요합니다. 완전탐색으로 시간초과가 나는 경우 출제자들이 무조건 규칙을 만들어놓습니다. 제가 찾은 규칙은 이렇습니다. 1. 가장 끝에서 0인 숫자를 1로 바꾼다. 뒤에 숫자를 0으로 바꾼다. 2. 0이 binary 맨 뒤에 있는 경우 0 -> 1만 해준다. 3. 0이 존재하지 않는 경우 1을 추가하고 기존 맨 앞 숫자를 1 -> 0으로 바꿔준다. import java.. 2024. 4. 14.
항해 99 17일차 TIL ( JadenCase 문자열 만들기 / 프로그래머스) 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1 번째 시도 String 함수, 이 두개를 알아야 풀 수 있는 문제입니다. toUpperCase() toLowerCase(); class Solution { public String solution(String s) { String answer = ""; String[] words = s.toLowerCase().split(""); boolean flag = true; for (String word : words) { answer += flag ? word.toUpperCase() : word; fla.. 2024. 4. 14.