본문 바로가기

그리디5

[그리디] 프로그래머스 조이스틱 level2 Java https://school.programmers.co.kr/learn/courses/30/lessons/42860 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 조이스틱으로 알파벳 이름을 완성하세요. 맨 처음엔 A로만 이루어져 있습니다. ex) 완성해야 하는 이름이 세 글자면 AAA, 네 글자면 AAAA 조이스틱을 각 방향으로 움직이면 아래와 같습니다. ▲ - 다음 알파벳 ▼ - 이전 알파벳 (A에서 아래쪽으로 이동하면 Z로) ◀ - 커서를 왼쪽으로 이동 (첫 번째 위치에서 왼쪽으로 이동하면 마지막 문자에 커서) ▶ - 커서를 오른쪽으로 이동 .. 2023. 5. 9.
[그리디] 프로그래머스 큰 수 만들기 https://school.programmers.co.kr/learn/courses/30/lessons/42883 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 어떤 숫자에서 k개의 수를 제거했을 때 얻을 수 있는 가장 큰 숫자를 구하려 합니다. 예를 들어, 숫자 1924에서 수 두 개를 제거하면 [19, 12, 14, 92, 94, 24] 를 만들 수 있습니다. 이 중 가장 큰 숫자는 94 입니다. 문자열 형식으로 숫자 number와 제거할 수의 개수 k가 solution 함수의 매개변수로 주어집니다. number에서 k 개의 수를 제거했을 .. 2023. 2. 9.
[그리디] 프로그래머스 체육복 Arrays.fill(배열 이름, 초기화 할 값) 배열을 특정값으로 한번에 초기화 import java.util.*; class Solution { public int solution(int n, int[] lost, int[] reserve) { int[] student = new int[n]; Arrays.fill(student, 1); // 가지고 있는 체육복 개수(배열 특정값으로 한번에 초기화) int answer = n; //체육복 도난 당한 학생 for (int i : lost) student[i - 1] -= 1; //여벌 체육복 가진 학생 for (int i : reserve) student[i - 1] += 1; //도난 당한 학생에게 여벌 체육복 빌려주는 경우 for (int i = 0.. 2022. 10. 4.
[그리디] 백준 11000번 강의실 배정 2차원 배열 정렬하는법 1. Comparator Arrays.sort(arr, (o1, o2) -> { if (o1[0] == o2[0]) return o1[1] - o2[1]; else return o1[0] - o2[0]; }); o1[0] - o2[1] 부분을 Integer.compare(o1[1], o2[1])로 바꿔도 된다. 한가지 기준으로만 정렬할 경우 아래와 같이 쓸수도 있다. Arrays.sort(arr, Comparator.comparing(o1->o1[1])); 1번째 element를 기준으로 정렬한다는 의미 2. 람다식 Arrays.sort(arr, (o1, o2) -> o1[0] == o2[0] ? o1[1] - o2[1] : o1[0] - o2[0]); 아래의 강의실 배정 코드에서.. 2022. 9. 26.
[그리디] 백준 13305번 주유소 import java.util.Scanner; public class Main{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); //도시의 개수 long[] cost = new long[N]; //기름 값 long[] length = new long[N-1]; //도시간 길이 for(int i=0; i 2022. 9. 25.