목록프로그래밍 (202)
봉봉의 개인 블로그
Garbage Collection(가비지 컬렉션) 이란 프로그램을 개발하다 보면 유효하지 않은 메모리인 가비지가 발생하게 된다. C 언어를 사용하면 free()라는 함수를 통해 직접 메모리를 해제해주어야 한다. 하지만 Java 를 이용해서 개발을 하다 보면 개발자가 직접 메모리를 해제 하지 않는다. 그 이유는 JVM의 가비지 컬렉터가 불필요한 Java 메모리를 관리해 주기 떄문이다. 대신 자바에서는 명시적으로 불필요한 데이터를 표현하기 위해 null을 선언해준다. Minor GC 와 Major GC JVM의 Heep 영역은 처음 설계될 때 다음의 2가지를 전제로 설계되었다. 대부분의 객체는 금방 접근 불가능한 상태가 된다. 오래된 객체에서 새로운 객체로의 참조는 아주 적게 존재한다. 즉, 객체는 대부분 ..
링크 : https://www.acmicpc.net/problem/16170 16170번: 오늘의 날짜는? 지금 시각을 UTC+0(세계 표준시)을 기준으로 나타냈을 때의 연도, 월, 일을 한 줄에 하나씩 순서대로 출력한다. www.acmicpc.net CODE 이전코드 import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.TimeZone; public class Main { public static void main (String[] args) { SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); simpleDateFormat.setTime..
링크 : https://www.acmicpc.net/problem/14928 14928번: 큰 수 (BIG) 첫째 줄에 제연이가 가장 좋아하는 수 N이 주어진다. (N ≤ 101,000,000) www.acmicpc.net CODE 이전 코드 import java.util.Scanner; import java.math.BigInteger; public class Main { public static void main (String[] args) { Scanner scanner = new Scanner(System.in); BigInteger num = scanner.nextBigInteger(); scanner.close(); System.out.println(num.remainder(BigInteger..
준비물 Intellij Docker jar file Jar File 실행 시킬 jar file 을 하나 준비한다. spring boot project 로 준비 하였다. build tool 은 gradle 을 사용하여 jar 파일을 준비하였고, api 서버를 띄워서 테스트하는걸로 하였다. Controller package com.example.springdebug.controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class DebugController { @GetMapping("..
Pycharm 은? Pycharm 은 나무 위치에서 아래와 같이 설명하고 있다. 다른 젯브레인즈사의 IDE처럼 기본적인 부분은 IntelliJ IDEA에 기반을 두고있다. 현용 파이썬 개발 툴 중에서는 가장 높은 완성도를 지니고 있기 때문에[1] 많이 쓰이는 편이다. 2020-05-28 일기준 PyCharm은 커뮤니티 에디션(무료)과 프로페셔널 에디션(유료, $8.9/월 또는 $89/년)으로 나뉜다.[3] PyCharm 역시 인텔리제이 아이디어 처럼 커뮤니티 버전은 오픈소스로 되어있다. 커뮤니티 버전은 인텔리제이와 비슷하게 제한되는 기능이 있으며[4] 파이참 프로페셔널은 인텔리제이랑 비교하면 아주 저렴한 가격이다. 파이참 또한 인텔리제이처럼 다년 구독을 하면 할인이 적용된다. 연간으로 추가 구독 시 1년..
문제 설명 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다행히 지도 암호를 해독할 방법을 적어놓은 메모도 함께 발견했다. 지도는 한 변의 길이가 n인 정사각형 배열 형태로, 각 칸은 공백(" ) 또는벽(#") 두 종류로 이루어져 있다. 전체 지도는 두 장의 지도를 겹쳐서 얻을 수 있다. 각각 지도 1과 지도 2라고 하자. 지도 1 또는 지도 2 중 어느 하나라도 벽인 부분은 전체 지도에서도 벽이다. 지도 1과 지도 2에서 모두 공백인 부분은 전체 지도에서도 공백이다. 지도 1과 지도 2는 각각 정수 배열로 암호화되어 있다. 암호화된 배열은 지도의 각 가로줄에서 벽 부분을 1, 공..
문제 설명 두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요. 예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다. 제한 사항 a와 b가 같은 경우는 둘 중 아무 수나 리턴하세요. a와 b는 -10,000,000 이상 10,000,000 이하인 정수입니다. a와 b의 대소관계는 정해져있지 않습니다. 내가 푼 내용 class Solution { public long solution(int a, int b) { long answer = 0; int max = a > b ? a : b; int min = a > b ? b : a; for (int i = min; i < max + 1; i++) { ans..
문제 설명 array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요. divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요. 제한 사항 arr은 자연수를 담은 배열입니다. 정수 i, j에 대해 i ≠ j 이면 arr[i] ≠ arr[j] 입니다. divisor는 자연수입니다. array는 길이 1 이상인 배열입니다. 내가 푼 내용 import java.util.*; import java.util.stream.*; class Solution { public int[] solution(int[] arr, int divisor) { int[] answer = Arrays.stream(..
문제 설명 배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은 수들을 반환할 때는 배열 arr의 원소들의 순서를 유지해야 합니다. 예를 들면, arr = [1, 1, 3, 3, 0, 1, 1] 이면 [1, 3, 0, 1] 을 return 합니다. arr = [4, 4, 4, 3, 3] 이면 [4, 3] 을 return 합니다. 배열 arr에서 연속적으로 나타나는 숫자는 제거하고 남은 수들을 return 하는 solution 함수를 완성해 주세요. 제한 사항 배열 arr의 크기 : 1,000,000 이하의 자연수 배열 arr의 원소의 크기 : 0보다 크거나..
문제 설명 단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다. 제한 사항 s는 길이가 1 이상, 100이하인 스트링입니다. 내가 푼 내용 class Solution { public String solution(String s) { int length = s.length(); int harfIndex = length / 2; return (length % 2) == 0 ? s.substring(harfIndex - 1, harfIndex + 1) : s.substring(harfIndex, harfIndex + 1); } } 풀어본 소감 삼항 연산자로 if 문을 줄여서 작성함.... 근데 다른사람이 푼 삼항연산자나 조건문을 사..