[프로그래머스][MySQL] 가장 큰 물고기 10마리 구하기
·
데이터베이스/문제 풀이
https://school.programmers.co.kr/learn/courses/30/lessons/298517 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr프로그래머스가장 큰 물고기 10마리 구하기 풀이물고기의 ID와 LENGTH를 조회한다.가장 큰 물고기부터 구해야 하므로 LENGTH를 기준으로 내림차순 정렬한다.길이가 같은 경우에는 문제 조건에 따라 ID를 기준으로 오름차순 정렬한다.마지막으로 LIMIT 10을 사용해 정렬된 결과 중 상위 10개만 조회한다. 정답 코드select id, lengthfrom fish_infoorder by length desc, id asclimit 10;
[프로그래머스 알고리즘 고득점 Kit][깊이/너비 우선 탐색(DFS/BFS)][Java] 타겟 넘버
·
알고리즘 & 자료구조/문제 풀이
https://school.programmers.co.kr/learn/courses/30/lessons/43165 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr프로그래머스 타겟 넘버 풀이이 문제는 각 숫자 앞에 + 또는 -를 붙여서 target 값을 만들 수 있는 경우의 수를 구하는 문제다.각 숫자마다 선택지는 두 가지다.현재 숫자를 더한다.현재 숫자를 뺀다.따라서 DFS를 사용해 모든 경우를 탐색한다.index는 현재 몇 번째 숫자를 보고 있는지 나타내고, sum은 지금까지 계산한 합을 의미한다.모든 숫자를 다 사용했을 때 sum == target이면 정답 개수를 1 증가시킨다.즉, 이 문제는 + / - 선택..
[프로그래머스 알고리즘 고득점 Kit][깊이/너비 우선 탐색(DFS/BFS)][Java] 퍼즐 조각 채우기
·
알고리즘 & 자료구조/문제 풀이
https://school.programmers.co.kr/learn/courses/30/lessons/84021 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 뭔가 동작이 필요할 때마다 메서드를 분리했더니 엉망이 되어버린 코드...문제가 생겼는데 혼자 고칠 수가 없어서 지피티의 많은 도움을 받았다...무작정 메서드 분리하는 것이 오히려 마이너스임을 깨달았다...나를 조금 덜 믿고 메서드 별로 테스트하자... 정답 코드 1. table에서 블록을 찾는다.2. game_board에서 빈칸을 찾는다.3. BFS로 연결된 칸들을 Shape로 묶는다.4. Shape를 정규화해서 위치 차이를 없앤다. -> 정렬과 0,..
[프로그래머스 알고리즘 고득점 Kit][스택/큐][Java] 프로세스
·
알고리즘 & 자료구조/문제 풀이
https://school.programmers.co.kr/learn/courses/30/lessons/42587 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr이 문제의 핵심은 큐의 순서를 유지하면서도, 현재 프로세스보다 우선순위가 높은 프로세스가 남아 있는지 판단하는 것이다.처음에는 큐를 직접 순회하면서 더 높은 우선순위가 있는지 확인할 수도 있다. 하지만 이 문제에서는 우선순위가 1부터 9까지로 제한되어 있다. 따라서 각 우선순위의 남은 개수를 배열로 관리하면, 현재 프로세스가 실행 가능한지 더 간단하게 판단할 수 있다.각 프로세스는 우선순위와 원래 위치를 함께 가진 객체로 저장했다. 큐에서 프로세스의 위치..
[프로그래머스 알고리즘 고득점 Kit][힙(Heap)][Java] 이중우선순위큐
·
알고리즘 & 자료구조/문제 풀이
https://school.programmers.co.kr/learn/courses/30/lessons/42628 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제이름이 너무 힌트라 2개의 우선순위큐를 사용하는 방법을 생각했다.최댓값과 최솟값을 항상 관리해야 하는데하나의 우선순위큐로는 쉽지 않다.그래서 최대를 관리하는 우선순위큐와 최소를 관리하는 우선순위큐를 나눠서 관리한다.그러면 여기서 하나의 수열에서 최대와 최소를 관리해야 하는데 2개로 나눴기 때문에다른 하나의 우선순위큐에서 삭제 혹은 추가는 다른 우선순위큐에서도 적용이 되어야 한다.추가는 둘 다 추가하면 된다.삭제는 바로 꺼내서 삭제할 수 없기 때문에..
[프로그래머스 알고리즘 고득점 Kit][정렬][Java] H-Index
·
알고리즘 & 자료구조/문제 풀이
https://school.programmers.co.kr/learn/courses/30/lessons/42747 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 같은 변수 h를 여러 곳에 사용하니까 문제를 이해하기 쉽지 않았다.내림차순해서 하나씩 보면6 5 3 1 01번째 논문을 보자 6번 이상 인용된 논문의 수는 1이다. -> h번이상 인용된 논문의 수는 h이상 이라는 문장을 만족하는 h는 1이다.2번째 논문을 보자 5번 이상 인용된 논문의 수는 2이다.-> h번이상 인용된 논문의 수는 h이상 이라는 문장을 만족하는 h는 2이다.3번째 논문을 보자 3번 이상 인용된 논문의 수는 3이다.-> h번이상 인용된 논..