본문 바로가기

분류 전체보기

(192)
프로그래머스<가장 큰 수>-2차(2022.09.15수정)-3차(2022.09.16풀이 참고 후 code review) 문제 설명 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 수는 6210입니다. 0 또는 양의 정수가 담긴 배열 numbers가 매개변수로 주어질 때, 순서를 재배치하여 만들 수 있는 가장 큰 수를 문자열로 바꾸어 return 하도록 solution 함수를 작성해주세요. 제한 사항 numbers의 길이는 1 이상 100,000 이하입니다. numbers의 원소는 0 이상 1,000 이하입니다. 정답이 너무 클 수 있으니 문자열로 바꾸어 return 합니다. 입출력 예 numbers return [6, 10, ..
Heap Heap - 우선 순위 큐 및 대기열을 만드는데 사용되어진다 (우선순위 큐를 구현할 때 가장 효율적이다) - 완전 이진 트리의 일종이다(가질 수 있는 노드의 최댓값은 2^(k+1) - 1이다) - 반정렬 상태를 유지한다 - 삽입/삭제는 O(logN)으로 매우 빠르다 - 배열의 자료구조로 저장된다 - 첫 index인 0은 사용되지 않는다 - Heap 정렬은 선택정렬의 원리를 가진다 종류 최대heap - 부모노드가 자식노드보다 크다 최소heap - 부모노드가 자식노드보다 작음 삽입 Heap에 데이터가 추가 되는 경우는 크게 2가지로 나뉜다. 1. Comparator가 nul이 아닐 때 2. Comparator가 null일 때 기본적으로 맨 밑 자식 노드에 값이 하나 추가되는 경우를 생각해보자. 1. 삽입된 ..
프로그래머스<기능개발>-수정요구 문제 설명 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 기능보다 먼저 개발될 수 있고, 이때 뒤에 있는 기능은 앞에 있는 기능이 배포될 때 함께 배포됩니다. 먼저 배포되어야 하는 순서대로 작업의 진도가 적힌 정수 배열 progresses와 각 작업의 개발 속도가 적힌 정수 배열 speeds가 주어질 때 각 배포마다 몇 개의 기능이 배포되는지를 return 하도록 solution 함수를 완성하세요. 제한 사항 작업의 개수(progresses, speeds배열의 길이)는 100개 이하입니다. 작업 진도는 100 미만의 자연수입니다. 작업 속도는 100 이하의 자..
프로그래머스<올바른 괄호>-2차-3차(수정완료22.09.16) 어제 밤에 계속 고민을 한 결과, "(" 모양이 여러번 나올 수도 있기 때문에 ")"와 대응할 수 있도록 짝을 맞춰주려면 queue가 아닌 Stack을 사용해야 할 것 같은 생각이 들었다 . 나의코드3차) import java.util.Stack; import java.util.Arrays; class Solution { boolean solution(String s) { boolean answer = true; Stack stack = new Stack(); char[] charArr = s.toCharArray(); String[] arr = new String[charArr.length]; for(int i = 0; i
프로그래머스<올바른 괄호> 보호되어 있는 글입니다.
JAVA(2022.09.10)- 큐를 적용한 문제 알아보기 Queue를 구현해야 하는 문제들을 review해보는 시간을 가졌다. 문제 : [백준] 10845번 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.Queue; import java.util.StringTokenizer; public class boj_6_10845 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); /..
JAVA(2022.09.09) - Stack,Queue를 활용하는 사고 기르기2 Stack문제 적용 예시를 어제 살펴보았고, 직접 적용해보는 시간을 가졌다. 비교적 쉬운 문제를 선정하였다. 문제는 백준 10773번이다. import java.util.Scanner; import java.util.Stack; public class MyClass { public static void main(String args[]) { Scanner sc = new Scanner(System.in); int firstknum = sc.nextInt(); //1번째 줄 K의 숫자 Stack stack = new Stack(); //K의 줄에 또 숫자가 들어옴 for(int i=0; i231){ break; } } System.out.println(sum); } } Stack을 이용하는 것이 매우 정석..
JAVA(2022.09.08) - Stack,Queue를 활용하는 사고 기르기 프로그래머스라는 문제를 풀어보려 하였다. 이 문제는 Stack/Queue를 활용해야 하는 문제인데, 지금까지 Stack/Queue 카테고리의 문제들도 arrayList나 for문을 위주로 풀었기에, Stack/Queue가 활용된 코드를 review하는 시간을 가져보고자 한다. Stack : first in-Last Out, Last in-First Out Queue : first in- first Out, Last in-Last Out 1. 배열에서 연속되는 숫자의 중복을 없애려면 ? import java.util.*; public class Solution { public int[] solution(int []arr) { Stack stack = new Stack(); //Stack생성 for (int..