본문 바로가기

Programmers18

[Java] 프로그래머스 : 체육복(Greedy Algorithm) https://programmers.co.kr/learn/courses/30/lessons/42862 코딩테스트 연습 - 체육복 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번 programmers.co.kr Greedy Algorithm(탐욕 알고리즘) : 매 선택에서 현재 당장 최적의 답을 선택(선택했을 경우 다른 가능성을 검증하지 않음) 결과적으로 최고의 선택이지 않을 수 있으나 빠르고 간결한 알고르즘이다. * 동전 문제(최소갯수의 거스름돈 동전을 받아야함) 1. 1200원을 동전 500원, 100원, 10원으로 나눌땐 500원 * 2개, 100원 * 2개 로 최.. 2022. 6. 21.
[Java] 프로그래머스 : 주식가격(Stack 사용) https://programmers.co.kr/learn/courses/30/lessons/42584 코딩테스트 연습 - 주식가격 초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. 제한사항 prices의 각 가격은 1 이상 10,00 programmers.co.kr Stack(자료구조) Priority Queue와 반대로 Last In First Out(LIFO) 나중에 들어간 데이터가 먼저 나오는 형식 import java.util.Stack; Stack stack = new Stack(); stack.push(value) : value값을 추가 stack.pop() : 가장 위쪽.. 2022. 6. 21.
[Java] 프로그래머스 : 타겟 넘버(DFS 사용) https://programmers.co.kr/learn/courses/30/lessons/43165 코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수들이 있습니다. 이 정수들을 순서를 바꾸지 않고 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 programmers.co.kr DFS(Depth-first-search) : 깊이 우선 탐색 알고리즘 각 정점 노드(숫자 지점)를 깊게 탐색하는 방식으로 stack을 쌓으면서 갈 수 있는 최대한 깊이 탐색 더 이상 탐색할 곳이 없으면 이전 정점으로 돌아가 방문하지 않은 정점으로 향하는 간선을 따라 이동 ① 우선순위가 높은 곳(작은 수)으로 먼저 이동 ② 더이상 이동할 .. 2022. 6. 20.
[Java] 프로그래머스 : 수박수박수박수박수박수?(while 사용) https://programmers.co.kr/learn/courses/30/lessons/12922 코딩테스트 연습 - 수박수박수박수박수박수? 길이가 n이고, "수박수박수박수...."와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 "수박수박"을 리턴하고 3이라면 "수박수"를 리턴하면 됩니다. 제한 programmers.co.kr While( i < 10){ sum = sum + i; i++; } System.out.println(sum); i가 10이 될때까지 1씩 증가하면서 sum함수에 i씩 더하기! sum은 45를 출력(10보다 작은수를 조건으로 걸었으므로) 문제 class Solution { public String solution(int n).. 2022. 6. 20.
[Java] 프로그래머스: 2016(switch사용) https://programmers.co.kr/learn/courses/30/lessons/12901 코딩테스트 연습 - 2016년 2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요? 두 수 a ,b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는 함수, solution을 완성하세요. 요일의 이름은 일요일부터 토요일까 programmers.co.kr 내가 사용한 switch문은 다른 블로그의 풀이보다 길다... int a=0; String fruit= ""; switch(a){ case 1: fruit= "바나나"; break; case 2: fruit= "딸기"; break; case 3: fruit= "사과"; break; default: fruit= "귤"; br.. 2022. 6. 17.
[Java] 프로그래머스: 가운데 글자 가져오기(substring사용) https://programmers.co.kr/learn/courses/30/lessons/12903 코딩테스트 연습 - 가운데 글자 가져오기 단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다. 재한사항 s는 길이가 1 이상, 100이하인 스트링입니다. 입출력 예 s ret programmers.co.kr substring 문자열에서 원하는 위치의 문자 추출 str.substring(시작 위치, 끝 위치) ex_ str문자열의 4번째부터 6번째 문자열 추출 str.substring(3, 6); 시작 위치는 index이기 때문에 0부터 시작함으로 원하는 문자가 4번째라면 시작 위치는 3을 입력 끝나는 위치는 3자리만큼 추출하고.. 2022. 6. 17.
[Java] 프로그래머스: 예산(Arrays.sort사용) https://programmers.co.kr/learn/courses/30/lessons/12982 코딩테스트 연습 - 예산 S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다. 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄 수는 programmers.co.kr Arrays.sort Arrays.sort(arr) : 배열 정렬(오름차순) Arrays.sort(arr, collections.rsverse()) : 내림차순 import java.util.Arrays; class Solution { public int solution(int[] d, int budget) { int answer = 0; // 올림차순으로 정렬 A.. 2022. 6. 16.
[Java] 프로그래머스: 숫자 문자열과 영단어(replaceAll 사용) https://programmers.co.kr/learn/courses/30/lessons/81301 코딩테스트 연습 - 숫자 문자열과 영단어 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자 programmers.co.kr String str = 변환할 단어 str.replace("Before 문자", "After 문자") replaceAll : 여러개의 문자를 동시에 변환할 때 문제 ex_ "one4seveneight" -> 1478 "23four5six8" -> 234568 class Solution { public int solution(String s) { Str.. 2022. 6. 9.
[Java] 프로그래머스: 더맵게(Priority Queue 사용) https://programmers.co.kr/learn/courses/30/lessons/42626 코딩테스트 연습 - 더 맵게 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같 programmers.co.kr 일반적인 큐(Queue)는 들어간 순서대로 나오는 FIFO(First In First Out)구조이다. - 처음 들어간 값이 제일 먼저 나오는 형태 하지만 우선순위 큐(Priority Queue)는 우선순위가 높은 데이터가 먼저 나오는 구조이다. import java.util.PriorityQueue; // int형 // 제일 작은 숫자를 우선순위로.. 2022. 6. 9.