본문 바로가기

Algorithm39

프로그래머스 Lv.0 전국 대회 선발 고사 프로그래머스 Lv.0 전국 대회 선발 고사 0번부터 n-1번까지 n명의 학생 중 등수가 높은 3명을 선발한다. 단, 전국 대회에 참여할 수 있는 학생만 포함시킨다. 각 학생들의 선발 고사 등수를 담은 정수 배열 rank[ ] 전국 대회 참여 가능 여부가 담긴 boolean 배열 attendance[ ]이 주어진다. 등수가 높은 순서대로 각각 a, b, c번이라고 할 때 10000 x a + 100 x b + c 를 return하라. **풀이 방법 TreeMap으로 key=순위, value=인덱스값을 저장한다. ※ TreeMap을 사용하면 기본적으로 오름차순 정렬이 된다. (왼쪽 노드-루트 노드-오른쪽 노드) TreeMap map = new TreeMap(); for (int i=0; i 2023. 7. 17.
프로그래머스 Lv.0 이진수 더하기 프로그래머스 Lv.0 이진수 더하기 이진수를 의미하는 두 개의 문자열 bin1과 bin2이 매개변수로 주어질 때, 두 이진수의 합을 return하라! bin1 bin2 result "10" "11" "101" "1001" "1111" "11000" 이진수를 더할 때 각 자리의 수가 모두 1이라면 앞 자리에 받아올림을 해줘야 한다. ** 풀이 방법 Integer.parseInt()는 두 번째 매개변수로 사용할 숫자 진법을 지정한다. int a = Integer.parseInt(bin1,2); int b = Integer.parseInt(bin2,2); 2진법을 사용해서 형변환 한 후 bin1과 bin2의 합을 구해서 다시 String으로 형변환 시켜주면 끝! (형변환 할 때 이진수 그대로 나와야 하므로 t.. 2023. 7. 15.
프로그래머스 Lv.0 한 번만 등장한 문자 프로그래머스 Lv.0 한 번만 등장한 문자 문자열 s가 매개변수로 주어지고, s에서 한 번만 등장한 문자를 사전 순으로 정렬해서 return하라! 한 번만 등장하는 문자가 없을 경우 빈 문자열을 return한다. (ex) s result "abcabcadc" "d" ** 풀이 방법 문자열 s를 ArrayList에 저장하고, list를 오름차순으로 정렬한다. 오름차순 : ArrayLIst이름.sort(Comparator.naturalOrder()); 내림차순 : ArrayLIst이름.sort(Comparator.reverseOrder()); List list = new ArrayList(); for (int i = 0; i < s.length(); i++) { char ch = s.charAt(i); li.. 2023. 7. 13.
프로그래머스 Lv.1 예산 프로그래머스 Lv.1 예산 예산 내에서 각 부서에 필요한 물품을 지원해 준다. 최대 몇 개의 부서에 물품을 지원할 수 있는지 구하는 문제! d는 부서별로 신청한 금액이 들어있는 배열 budget은 예산 ** 풀이 방법 d배열을 오름차순 정렬하면 금액이 작은 순서대로 더해지기 때문에 최대 개수를 쉽게 구할 수 있다. Arrays.sort(d); 반복문을 통해 예산 내에서 원소들을 하나씩 더해나가고 최대개수를 하나씩 늘린다. 예산이 같아지면 반복문을 빠져나온다. 원소들을 더한 값이 예산보다 커지면 최대개수를 뺀다. for (int i=0; ibudget) answer--; } 전체 코드 import java.util.*; class Solution { public int solution(int[] d, in.. 2023. 7. 12.
반응형