목록전체 글 (153)
Dazzling 개발 노트
이클립스에서 버전이 업그레이드 되면서 Navigator가 빠졌다고 함 Project Explorer에서 설정을 바꿔 Navigator처럼 사용 가능 Window -> Show View -> Project Explorer 클릭 Project Explorer 창의 오른쪽 상단에 있는 세 개의 세로 점 클릭 "Filters and Customization..." 클릭 "Pre-set filters" 탭에서 "Java output folders" 선택 해제 "Content" 탭에서 "Java Elements" 선택 해제 레퍼런스 https://okky.kr/questions/1497970
힙 완전 이진트리 형태의 최대, 최솟값을 빠르게 찾아내는데 유용한 자료구조 최소 힙 부모 노드의 key가 자식 노드의 key보다 작거나 같은 완전 이진트리 최대 힙 부모 노드의 key가 자식 노드의 key보다 크거나 같은 완전 이진트리 JAVA로 힙 구현하기 우선순위 큐인 PriorityQueue를 통해 구현할 수 있다. 최대 힙은 내림차순 정렬이어야 하므로, Collections.reverseOrder 옵션을 추가해서 사용한다. PriorityQueue q = new PriorityQueue(Collections.reverseOrder()); 예제 문제 https://www.acmicpc.net/problem/11279 11279번: 최대 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 ..
[백준] 11055 - 가장 큰 증가하는 부분수열 (Java) 문제 https://www.acmicpc.net/problem/11055 풀이/후기 예전에 풀었던 문제지만, 코테 스터디 문제로 선택되어 다시 풀게 됐다. 문제를 보자마자 dp로 풀어야겠다는 생각이 들었고, 어떻게 구현할지도 대략 그려졌다. 예전에 dp 공부하면서 풀면서도 이걸 어떻게 하라는거지? 했었는데.. 이젠 문제 보자마자 dp로 풀어야겠다, 어떻게 하면 될까? 고민하는 스스로가 아주 뿌듯했다! 비록 초반에 작성한 코드는 오답이었지만, 명확히 이해하고 푼 것 같아 만족스럽다. 코드 import java.io.*; import java.util.*; public class Main { public static void main(String..
[프로그래머스] 콜라 문제 (Java) 문제 https://school.programmers.co.kr/learn/courses/30/lessons/132267 풀이/후기 문제를 보자마자 재귀로 풀어야겠다는 생각이 들었다. 평소 재귀에 약해서 두려움이 있었지만, 최대한 재귀로 풀기 위해 신경썼다. 다른 사람들 풀이를 보니 더욱 간단한 방법도 있는 것 같지만, 그래도 만족스럽다^_^ 코드 class Solution { static int answer = 0; public int solution(int a, int b, int n) { return colla(a, b, n); } static int colla(int a, int b, int n){ if (n < a) return answer; int out..
[프로그래머스] 소수 찾기 (Java) 문제 https://school.programmers.co.kr/learn/courses/30/lessons/12921 풀이/후기 1부터 n까지라는 것을 보고 dp로 풀 수 있지 않을까? 하고 dp로 풀었다. 소수일 때마다 카운트를 하는 것과 성능차이가 날지 궁금해서 풀어보니 확실히 속도는 dp가 빨랐다. 이 문제에서 큰 효율을 본 것은 아니지만...! 예전엔 dp너무 어려워서 엉엉 울었는데,, 이제는 활용 방안을 생각해 낼 수 있어서 뿌듯했다. 코드 dp로 푼 풀이 class Solution { public int solution(int n) { int[] dp = new int[n+1]; dp[1] = 0; dp[2] = 1; for (int i=3; i
[백준] 11060 - 점프 점프 (Java) 문제 https://www.acmicpc.net/problem/11060 풀이/후기 dp로 푸는 것을 파악했고, 점화식도 혼자 잘 찾았다! 근데 여러 번 제출해도 자꾸 틀렸다고 나왔다..ㅠ 인덱스를 0부터 시작했는데, 이 부분을 고쳐주니 정답이 되었다. 0으로 시작하면 만약 입력값이 0부터 시작될 때 아예 움직일 수 없는 상태가 되기 때문이다! 코드 import java.io.*; import java.util.*; public class Main { static int N; public static void main (String[] args) throws IOException { BufferedReader br = new BufferedReader(new..
[프로그래머스] 오픈채팅방 (Java) 문제 https://school.programmers.co.kr/learn/courses/30/lessons/42888 풀이/후기 생각보다 쉽고 간단하게 해결할 수 있는 문제였는데, 비효율적으로 풀다가 테스트케이스 하나가 안넘어가서 삽질을 엄청했다 ㅎ 로그를 id로 미리 기록한 후 닉네임은 최종 값을 기준으로 id를 덮어씌우도록 풀었다. map을 잘 활용해서 푼 것 같아 좋았다! 코드 import java.util.*; class Solution { public ArrayList solution(String[] record) { HashMap map = new HashMap(); ArrayList answer = new ArrayList(); // id : 닉네임 ..
[프로그래머스] 햄버거 만들기 (Java) 문제 https://school.programmers.co.kr/learn/courses/30/lessons/133502 풀이/후기 Stack으로 풀지 List로 풀지 고민하다가 결국 List로 해결했다. 연속된 것을 판단할 때, 꼭 반복문의 조건으로 이전 값을 탐색하지 않아도 i+1, i+2, i+3을 통해 한 번에 조회할 수 있는 방법을 습득했다.(?) 코드 import java.util.*; class Solution { public int solution(int[] ingredient) { int answer = 0; List list = new LinkedList(); for (int i : ingredient){ list.add(i); while (l..