Java

·Programmers
3진법 뒤집기https://school.programmers.co.kr/learn/courses/30/lessons/68935 문제 설명자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. 제한 사항n은 1 이상 100,000,000 이하인 자연수입니다. 입출력 예nresult457125229 풀이1. 3진법으로 변환한다.2. 앞뒤로 뒤집는다.3. 10진법으로 변환한다. 고민 Point10진법을 n진법으로 변경할 때는 Integer의 toString 메소드를 사용한다. 첫 번째 매개변수에는 변환할 int 타입의 수를, 두 번째 매개변수에는 변환할 진법 n을 넣는다. 반환 타입은 S..
·Programmers
크기가 작은 부분 문자열https://school.programmers.co.kr/learn/courses/30/lessons/147355 문제 설명숫자로 이루어진 문자열 t와 p가 주어질 때, t에서 p와 길이가 같은 부분문자열 중에서, 이 부분문자열이 나타내는 수가 p가 나타내는 수보다 작거나 같은 것이 나오는 횟수를 return하는 함수 solution을 완성하세요.예를 들어, t="3141592"이고 p="271" 인 경우, t의 길이가 3인 부분 문자열은 314, 141, 415, 159, 592입니다. 이 문자열이 나타내는 수 중 271보다 작거나 같은 수는 141, 159 2개 입니다. 제한 사항1 ≤ p의 길이 ≤ 18p의 길이 ≤ t의 길이 ≤ 10,000t와 p는 숫자로만 이루어진 ..
·TIL
프로그래머스 문제를 풀다가 Stack를 int[]로 변환해야 하는 상황에 마주했다.Java 에서는 Stack를 직접 int[]로 변환할 수 없어 중간 과정을 거쳐야 한다. 0. int[] arr이 있다고 가정하고 그 값을 stack에 pushint[] arr = { 0, 1, 2, 3, 4 };Stack stack = new Stack();for(int i = 0; i 1. Stack ➡️ Integer[]Integer[] temp = stack.toArray(new Integer[0]);int[] answer = new int[temp.length]; ⭐️ 잠깐, new Integer[0]는 무엇일까?stack.toArray(new Integer[0])에서 new Integer[0]는 리턴될..
·Deploy
Jenkins, Docker, Ansible를 이용하여 AWS로 배포를 해보자. 최종적으로는 AWS EC2 인스턴스 3개로 배포하게 될 것이다. 각 인스턴스를 jenkins-server, docker-server, ansible-server 라고 하자. jenkins-server로 사용될 EC2 를 하나 생성하고 해당 EC2에 Java를 설치한 후 해당 서버를 AMI로 만들 것이다. Java가 설치된 AMI로 EC2 서버를 추가로 생성할 것이다.    1. AWS EC2 인스턴스 생성먼저 AWS로 접속하여 리전이 서울인지 확인한 후에 EC2 탭으로 들어간다.  인스턴스 생성을 위해 인스턴스 시작을 클릭한다. 다음과 같이 설정한 후 인스턴스를 시작한다.인스턴스 이름 : cicd-project-ec2 (추후..
설명      풀이 결정 알고리즘이란 이분 검색을 이용하는 것이다. lt와 rt 사이에 반드시 답이 있다고 보장할 수 있는 문제에만 적용이 가능하다. 답으로서 가능한지 범위를 좁혀 나가면서 최종적으로 답을 결정한다. 좋은 답을 향해 좁혀 나가는 알고리즘이다.  solution 함수 로직은 다음과 같다.정답이 될 변수 answer를 0으로 초기화 한다.lt는 배열의 최댓값이고, rt는 배열의 합이다.배열의 최댓값은 Arrays.stream(arr).max().getAsInt() 로 구한다.배열의 합은 Arrays.stream(arr).sum() 으로 구한다.이분 탐색을 수행한다. lt가 rt보다 작거나 같을 때 반복한다. while (lt 여기서 mid 변수는 DVD 한 장의 용량을 의미한다. mid 변수..
설명       풀이 이 문제를 통해 이분 검색 (Binary Search) 알고리즘에 대해 학습했다. 이분 검색은 오름차순이던 내림차순이던 정렬된 상태에서 수행해야 한다.앞에서부터 쭉 탐색하는 것은 순차 검색이라고 하며, 시간 복잡도는 O(n)이다.이분 검색의 시간 복잡도는 O(log(n))이다. 핵심은 다음과 같다.배열은 오름차순 정렬 되어있다고 가정한다. (Arrays.sort를 이용한다.)arr은 데이터가 들어있는 int형 배열이고, m은 찾고자 하는 수이다.두 포인터 변수 lt, rt, 그리고 mid 변수를 이용한다. lt는 왼쪽 인덱스 번호를 나타내며, rt는 오른쪽 인덱스 번호를 나타낸다. mid 변수는 (lt + rt) / 2 이다.lt가 rt보다 같거나 작은 동안 반복한다.(arr[mid..
설명      풀이 자료구조는 ArrayList를 사용한다.Point 클래스는 우리가 정의해야 할 클래스이다. 이 클래스는 x좌표, y좌표를 갖고 있으며 Comparable 인터페이스의 구현 클래스이다. Comparable 인터페이스에서 구현해야 할 메소드는 compareTo이다.오름차순인 경우 this.멤버변수 - o.멤버변수, 내림차순인 경우 o.멤버변수 - this.멤버변수 를 사용한다. 즉, 음수값이 리턴되도록 하면 된다.정렬은 Collections.sort를 호출하면 된다. 그럼 Comparable 인터페이스를 통해 compareTo의 정렬 기준에 의해 정렬이 수행된다.   코드와 함께 설명을 정리하면 다음과 같다. 아래는 핵심인 Point 클래스이다. 1) Point 클래스는 Comparabl..
설명      풀이 자료구조는 int형 배열을 사용한다. 로직은 다음과 같다.정답으로 리턴할 데이터는 ArrayList 형으로 생성한다.원본 배열을 깊은 복사한다. clone 메소드를 이용한다. 이 배열을 복사된 배열이라고 하자.복사된 배열을 오름차순 정렬한다. Arrays 클래스의 sort 메소드를 이용한다.반복문을 돌면서 원본 배열과 복사된 배열의 값을 비교한다.값이 다르다면 정답에 add 한다. 이 때 인덱스 값에 +1을 해야 배정받은 번호가 된다. (번호는 1부터 시작이고 인덱스는 0부터 시작이므로)정답 배열을 리턴한다.    코드 package inflearn._6_6;import java.io.BufferedReader;import java.io.BufferedWriter;import java..
coding-orange
'Java' 태그의 글 목록