본문 바로가기

전체 글

(186)
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..
JAVA(2022.09.07) - math함수 다른사람의 풀이) class Solution { public int solution(int[][] sizes) { int length = 0, height = 0; for (int[] card : sizes) { length = Math.max(length, Math.max(card[0], card[1])); height = Math.max(height, Math.min(card[0], card[1])); } int answer = length * height; return answer; } } 어제 푼 을 해결한 다른 사람들의 코드를 리뷰하다가 감탄할만한 코드를 찾았다. for문이 아닌 Math함수를 통해서 사용할 수 있었을텐데 말이다. 그래서 오늘은 Math함수를 복습하고자 한다. 주요 메소드 Mat..
프로그래머스<최소직사각형> -해결완료 문제 카테고리가 완전탐색이기에 완전탐색법을 쓸까 고민하였는데, 재귀라던지 마땅한 방법이 생각나지도 않을 뿐더러, 적용하는 것보다 더 좋은 방법이 생각나서 다른방법을 사용하였다. 가장 큰 숫자와, 짝 지어진 두 개의 수들 중 작은 숫자들 중에서 가장 큰 숫자를 뽑는 것을 해결책이라고 생각하였다. 결과는 100점 import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; class Solution { public int solution(int[][] sizes) { int answer = 0; int[] answerarr = new int[2]; int max=0; for(int i=0; i MAX값이 커버 가능하니깐 ..
프로그래머스<최소직사각형> - 완전 탐색 공부 후 수정예정 문제 설명 명함 지갑을 만드는 회사에서 지갑의 크기를 정하려고 합니다. 다양한 모양과 크기의 명함들을 모두 수납할 수 있으면서, 작아서 들고 다니기 편한 지갑을 만들어야 합니다. 이러한 요건을 만족하는 지갑을 만들기 위해 디자인팀은 모든 명함의 가로 길이와 세로 길이를 조사했습니다. 아래 표는 4가지 명함의 가로 길이와 세로 길이를 나타냅니다. 1 60 50 2 30 70 3 60 30 4 80 40 가장 긴 가로 길이와 세로 길이가 각각 80, 70이기 때문에 80(가로) x 70(세로) 크기의 지갑을 만들면 모든 명함들을 수납할 수 있습니다. 하지만 2번 명함을 가로로 눕혀 수납한다면 80(가로) x 50(세로) 크기의 지갑으로 모든 명함들을 수납할 수 있습니다. 이때의 지갑 크기는 4000(=80 ..
JAVA(2022.08.20)-최소 직사각형 문제 설명 명함 지갑을 만드는 회사에서 지갑의 크기를 정하려고 합니다. 다양한 모양과 크기의 명함들을 모두 수납할 수 있으면서, 작아서 들고 다니기 편한 지갑을 만들어야 합니다. 이러한 요건을 만족하는 지갑을 만들기 위해 디자인팀은 모든 명함의 가로 길이와 세로 길이를 조사했습니다. 아래 표는 4가지 명함의 가로 길이와 세로 길이를 나타냅니다. 명함 번호가로 길이세로 길이 1 60 50 2 30 70 3 60 30 4 80 40 가장 긴 가로 길이와 세로 길이가 각각 80, 70이기 때문에 80(가로) x 70(세로) 크기의 지갑을 만들면 모든 명함들을 수납할 수 있습니다. 하지만 2번 명함을 가로로 눕혀 수납한다면 80(가로) x 50(세로) 크기의 지갑으로 모든 명함들을 수납할 수 있습니다. 이때의 ..
프로그래머스<가장 큰 수> 문제 설명 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, ..
JAVA(2022.08.17)- 사용자 정의 정렬 - Comparable 인터페이스를 구현하여 정렬방식 지정 가능 - Comparable 인터페이스를 구현하여 Custom Comparator 만들 수 있음 - CompareTo() 메소드 안에 정렬 기준이 정의되어야함