알고리즘/프로그래머스 18

[프로그래머스]Summer/Winter Coding(~2018)>예산 Java

https://programmers.co.kr/learn/courses/30/lessons/12982 코딩테스트 연습 - 예산 S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다. 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄 수는 programmers.co.kr 부서별로 신청한 금액이 들어있는 배열 d를 오름차순 정렬을 하고 차례로 합해서 예산과 비교한다. 합할 때마다 지원할 수 있는 부서 수를 증가시킨다. 비교해서 합한 값이 예산보다 크면 break한다. public static int solution(int[] d, int budget) { int answer = 0; int sum = 0; Arrays.sort(d);..

[프로그래머스]2019카카오개발자겨울 인턴십>크레인 인형뽑기 게임 Java

https://programmers.co.kr/learn/courses/30/lessons/64061 코딩테스트 연습 - 크레인 인형뽑기 게임 [[0,0,0,0,0],[0,0,1,0,3],[0,2,5,0,1],[4,2,4,4,2],[3,5,1,3,1]] [1,5,3,5,1,2,1,4] 4 programmers.co.kr 스택으로 바구니를 만들고 바구니에 있는 인형과 뽑을 인형을 비교해서 바구니 제일 위에 있는 인형이면 2개 같이 터트림 public static int solution(int[][] board, int[] moves) { int answer = 0; Stack stack = new Stack(); // 바구니 stack.push(0); // 값 같은지 비교하기 위해 초기값 필요함 for(i..

[프로그래머스]탐욕법>체육복 Java

https://programmers.co.kr/learn/courses/30/lessons/42862 코딩테스트 연습 - 체육복 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번 programmers.co.kr 1. 도난 당한 학생보다 1 작거나 1 큰 수 학생이 여벌이 있으면 체육 수업을 들을 수 있다. 2. 여벌이 있는 학생이 도난 당했다면 -1로 해주면서 다른 학생에게 빌려주지 않도록 한다. public static int solution(int n, int[] lost, int[] reserve) { int answer = n - lost.length; // 체육..

[프로그래머스]연습문제>가운데 글자 가져오기 Java

https://programmers.co.kr/learn/courses/30/lessons/12903 코딩테스트 연습 - 가운데 글자 가져오기 단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다. 재한사항 s는 길이가 1 이상, 100이하인 스트링입니다. 입출력 예 s ret programmers.co.kr 내가 작성한 코드 class Solution { public static String solution(String s) { String answer = ""; char[] arr = s.toCharArray(); if(s.length() % 2==0) { answer = arr[(s.length()/2)-1]+""+arr[..

[프로그래머스]연습문제>직사각형 별찍기 Java

https://programmers.co.kr/learn/courses/30/lessons/12969 코딩테스트 연습 - 직사각형 별찍기 이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어집니다. 별(*) 문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태를 출력해보세요. 제한 조건 n과 m은 각각 1000 이하인 자연수 programmers.co.kr 그냥 반복문만 사용하는 문제 import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int a = sc.nextInt(); int b = sc.nextInt();..

[프로그래머스]정렬>K번째수 Java

https://programmers.co.kr/learn/courses/30/lessons/42748 코딩테스트 연습 - K번째수 [1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3] programmers.co.kr 자바 메서드 사용으로 쉽게 풀 수 있었던 문제다. Arrays.copyOfRange(arr,i,j) -> arr[i]에서부터 arr[j-1]까지 복사해서 새로운 배열을 만드는 메서드 Arrays.sort(arr) -> arr 오름차순 import java.util.Arrays; class Solution { public static int[] solution(int[] array, int[][] commands) { int[] ..

[프로그래머스]해시>완주하지 못한 선수 Java

https://programmers.co.kr/learn/courses/30/lessons/42576 코딩테스트 연습 - 완주하지 못한 선수 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수 programmers.co.kr 해시를 사용해야 하는 문제 같지만 어려워서 그냥 풀었다. 정렬을 사용하면 성능이 좋지 않을 것 같기에 해시를 이용하는 법을 익혀야 할 것 같다. 그래서 해시로 푸는 법도 확인해보려고 한다. [이클립스 코드] import java.util.Arrays; public class Main { public static String solution(S..

[프로그래머스]2020 카카오 인턴십 > 키패드 누르기 Java

programmers.co.kr/learn/courses/30/lessons/67256 코딩테스트 연습 - 키패드 누르기 [1, 3, 4, 5, 8, 2, 1, 4, 5, 9, 5] "right" "LRLLLRLLRRL" [7, 0, 8, 2, 8, 3, 1, 5, 7, 6, 2] "left" "LRLLRRLLLRR" [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] "right" "LLRLLRLLRL" programmers.co.kr Level 1이지만 바로 풀지 못했고 https://zzang9ha.tistory.com/292 이분의 풀이를 참고했다. 1,4,7은 왼손 3,6,9는 오른손으로 바로 구할 수 있다. 누를 번호를 3으로 나누었을 때 나머지가 0이면 오른손, 나머지가 1이면 왼손, 나..