일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 코딩테스트
- 우분투
- React
- 티스토리
- 자바
- 리눅스
- 개발
- 알고리즘
- 오블완
- Tistory
- 티스토리챌린지
- ubuntu
- programmers
- 개발자
- error
- CodingTest
- 코테
- SpringBoot
- TypeScript
- EC2
- 프로그래머스
- Linux
- Java
- 개발공부
- vscode
- 스프링부트
- 둔산동맛집
- Git
- AWS
- 코딩
- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 코딩테스트
- 우분투
- React
- 티스토리
- 자바
- 리눅스
- 개발
- 알고리즘
- 오블완
- Tistory
- 티스토리챌린지
- ubuntu
- programmers
- 개발자
- error
- CodingTest
- 코테
- SpringBoot
- TypeScript
- EC2
- 프로그래머스
- Linux
- Java
- 개발공부
- vscode
- 스프링부트
- 둔산동맛집
- Git
- AWS
- 코딩
- Today
- Total
목록프로그래머스 (11)
개발자가 된 감자

부서별로 신청한 금액이 들어있는 배열 d와 예산 budget이 매개변수로 주어질 때, 최대 몇 개의 부서에 물품을 지원할 수 있는지 return 하기 1. 예산 내에서 최대 지원 횟수를 구하기 위해, 부서별 신청 금액 오름 차순 정렬하기Arrays.sort(d); // 오름차순 정렬int cnt = 0;2. 오름차순으로 정렬된 신청 금액을 순서대로 예산에서 차감시킨 후, 0이 되면 breakfor(int i=0; i전체 코드import java.util.Arrays;class Solution { public int solution(int[] d, int budget) { Arrays.sort(d); int cnt = 0; for(i..

배열 arr에서 연속적으로 나타나는 숫자는 제거하고 남은 수들을 return 하기1. 변수 초기화Stack stack = new Stack();Queue queue = new LinkedList();2. 스택과 큐가 비어있으면 데이터를 삽입하고, 아니라면 숫자 비교 후 일치하지 않을 때 삽입 처리for(int num : arr){ if(stack.isEmpty()){ stack.push(num); queue.add(num); continue; } if(stack.peek() != num){ stack.push(num); queue.add(num); }}3. 큐에 담긴 값을 하나씩 제거하며 배열..

배열 array, [i, j, k]를 원소로 가진 2차원 배열 commands가 매개변수로 주어질 때, commands의 모든 원소에 대해 앞서 설명한 연산을 적용했을 때 나온 결과를 배열에 담아 return 하기연산법 : 배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수를 구하기1. 변수 초기화int[] answer = new int[commands.length]; // 2차원 배열의 길이로 초기화2. 2차원 배열인 commands 변수의 i, j, k 구하기for(int i=0; i3. i, j 만큼 자른 숫자들을 재정렬 후 slice 배열에 담은 다음, k번째 수를 픽하여 answer에 담기 ... int[] slice = new int[(end-b..

'(' 또는 ')' 로만 이루어진 문자열 s가 주어졌을 때, 문자열 s가 올바른 괄호이면 true를 return 하고, 올바르지 않은 괄호이면 false를 return 하기괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다1. 변수 초기화boolean answer = true; // 기본 정답 값 trueint a = 0; // 괄호 횟수char[] array = s.toCharArray(); // 문자열 char 배열로 초기화2. 만약 문자열의 길이가 홀수일 경우 false로 리턴if(array.length%2 != 0){ return false; }3. 괄호 별 나오는 순서에 따라 a 값 증감 처리for(int i=0; i '(' 일 경우, a ..

문자열로 이루어진 배열 cards1, cards2와 원하는 단어 배열 goal이 매개변수로 주어질 때, cards1과 cards2에 적힌 단어들로 goal를 만들 있다면 "Yes"를, 만들 수 없다면 "No"를 return하기.카드를 사용하지 않고 다음 카드로 넘어갈 수 없습니다. 1. 변수 초기화String answer = "No"; // answer defaultint preIdx1 = 0; // 반복문에 사용할 인덱스 초기화int cnt1 = 0; // 카드 뭉치 1에서 일치한 횟수int preIdx2 = 0; // 반복문에 사용할 인덱스 초기화int cnt2 = 0; // 카드 뭉치 2에서 일치한 횟수 2. 카드 뭉치 1에 있는 단어와 goal 배열에 있는 단어 비교 후 카운트 증가for(int ..

마라톤에 참여한 선수들의 이름이 담긴 배열 participant와완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하기.1. 변수 초기화 String answer = ""; Map nameMap = new HashMap(); // 완주한 선수들의 이름을 담을 map 2. 완주한 선수들의 이름이 담긴 배열 오름차순 정렬Arrays.sort(completion); 3. completion 배열 값을 key : index, value : 이름 형태로 map에 담기for(int i=0; i 4. 전체 선수의 이름이 담긴 배열 오름차순 정렬Arrays.sort(participant); 5. 완주한 선수들의 이름이 담긴 map에 해당 이름이 없거나, for..

사과의 최대 점수 k, 한 상자에 들어가는 사과의 수 m, 사과들의 점수 score가 주어졌을 때, 과일 장수가 얻을 수 있는 최대 이익을 return 하기상자에 담긴 사과 중 가장 낮은 점수가 p (1 ≤ p ≤ k)점인 경우, 사과 한 상자의 가격은 p * m 입니다 1. 정답으로 return할 answer 변수 초기화int answer = 0; 2. 사과들의 점수를 오름차순으로 정렬Arrays.sort(score); 3. 버려지는 사과가 없는 경우, 있는 경우로 분기하여 이익 값 구하기if(score.length % m == 0)} // 주어진 사과 개수가 한 상자에 들어가는 사과 수의 배수라면, for(int i=0; i0; i-=m){ // 높은 점수부터 존재하는 역순으로 점수 값을 꺼내..

민우가 구매한 로또 번호를 담은 배열 lottos, 당첨 번호를 담은 배열 win_nums가 매개변수로 주어진다. 이때, 당첨 가능한 최고 순위와 최저 순위를 차례대로 배열에 담아서 return 하기 1. 변수 초기화int[] answer = new int[2]; // 최고 순위, 최저 순위가 들어갈 배열int checked = 0; // 당첨 번호와 일치한 개수int zero = 0; // 알 수없는 번호의 개수 2. 민우의 로또 번호에서 알 수 없는 번호 개수, 당첨 번호와의 일치 개수 구하기for(int myNum : lottos) { // 민우의 로또 번호 하나씩 꺼내기 if(myNum == 0) { // 0일 경우, 알아볼 수 없는 번호로 간주 zero++; // 알아..