[프로그래머스 알고리즘 고득점 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번이상 인용된 논..
[프로그래머스 알고리즘 고득점 Kit][스택/큐][Java] 올바른 괄호
·
알고리즘 & 자료구조/문제 풀이
https://school.programmers.co.kr/learn/courses/30/lessons/12909 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 닫힌 괄호가 들어왔을 때 stack 안에 열린 괄호가 있으면 열린 괄호를 꺼낸다. () 짝을 맞춰 소멸.-> 비어있을 때 닫힌 괄호? X스택을 쓰는 이유는 닫힌 괄호는 가장 나중에 열린 괄호와 짝이 맞아야한다.( -> (( -> (() -> (그래서 위로 쌓이는 자료구조를 선택한다. import java.util.*;class Solution { boolean solution(String s) { int len = s.length()..
[프로그래머스 알고리즘 고득점 Kit][동적계획법(Dynamic Programming)][Java] 사칙연산
·
알고리즘 & 자료구조/문제 풀이
https://school.programmers.co.kr/learn/courses/30/lessons/1843 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 1. 틀린코드작은 영역부터 잘라서 왼쪽의 최대 최소, 오른쪽 최대 최소를 이용해 특정 영역의 최댓값을 구한다.간격이 가장 작은 2부터 0~0 최대 최소 0~2 최대 최소 2~4 ...를 찾아가고간격이 커지면서 0~4 4~8 .. 이렇게 범위를 늘려간다.그렇게 되면 N^3의 시간복잡도가 나오는데 시간초과가 떴다.복잡도를 줄이는 건 도저히 모르겠어서 의심되는 곳을 바꿔보기로 했다.class Solution { public int solution(St..
[프로그래머스 알고리즘 고득점 Kit][그리디][Java] 체육복
·
알고리즘 & 자료구조/문제 풀이
https://school.programmers.co.kr/learn/courses/30/lessons/42862 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr지금 나는 2벌을 가지고 있고내 왼쪽이나 오른쪽에 한벌도 없다면 빌려준다.모든 사람에 대해서 체육복을 왼쪽 기준을 먼저 다 체크해준다.모든 사람을 왼쪽부터 왼쪽 친구 먼저 기준으로 둔 이유는 0 2 0 2 이렇게 있다면 0 1 1 2 이런 상황이 일어날 수 있기때문에 왼쪽 사람부터 왼쪽 친구에게 먼저인 방향을 정하고 진행했다.반대로 오른쪽 사람부터 오른쪽 친구에게 먼저인 방향으로 풀어도 된다.양 끝점 배열의 인덱스를 넘어가지 않게 하기위해 분리했더니 좀..
[프로그래머스 알고리즘 고득점 Kit][정렬][Java] 가장 큰 수
·
알고리즘 & 자료구조/문제 풀이
https://school.programmers.co.kr/learn/courses/30/lessons/42746 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 2개의 문자열을 사전순 역으로 하면아래처럼 쉽게 할 수 있다. 길이가 달라도 2개를 이어 붙여서 판단하면 간단하게 할 수 있다.그렇게 정렬하면 맨앞에 0이 오는 경우를 제외하고는 이어 붙여서 반환하면된다. import java.util.*;class Solution { public String solution(int[] numbers) { String[] numStr = new String[numbers.length]; f..