본문 바로가기

Development110

[Algorithm] 프로그래머스 레벨2 124나라의 숫자 코딩테스트 연습 - 124 나라의 숫자 programmers.co.kr 10진법 124나라 10진법 124나라 1 1 6 14 2 2 7 21 3 4 8 22 4 11 9 24 5 12 10 41 500,000,000 이하의 자연수 n이 매개변수로 주어질 때, n을 124 나라에서 사용하는 숫자로 바꾼 값을 return해주는 함수를 작성하는 문제입니다. 효율성 테스트 실패 코드 public String failSolution(int n) { String answer = ""; int rest = 0; while(n > 0) { rest = n % 3; n /= 3; if(rest == 0) { rest = 4; n -= 1; } answer = rest + answer; } return answer; }.. 2022. 1. 6.
[Java] JVM 메모리 구조 먼저, JVM이란 - JVM은 Java Virtual Machine의 약자로 자바 가상머신을 의미합니다. - 우리가 작성한 자바 코드는 컴파일러를 통해 자바 바이트 코드 즉, class 확장자 파일로 컴파일됩니다. - 해당 파일을 JVM위에서 동작시킴으로서 JVM만 설치되어 있다면 운영체제에 구애받지 않고 프로그램을 동작할 수 있습니다. 위 그림의 3번인 Runtime Data Area가 알아보고자 하는 JVM의 메모리 영역입니다. 운영체제 위에서 JVM이 실행되면서 할당받는 메모리 영역입니다. 5개의 영역이 존재합니다. 메소드, 힙, 스택 영역에 대해서만 알아보도록 하겠습니다. 메소드 영역(Method Area) 스택 영역(Stack Area) / 힙 영역(Heap Area) Reference 마로의 .. 2022. 1. 1.
[Java] Comparator Java에서의 정렬 자바에서 데이터를 정렬해야 할 때, 기본적인 정렬은 java.util 패키지에 정의되어 있는 Arrays와 Collections의 sort메소드를 사용합니다. int[] randomNum = {3, 4, 6, 3, 2}; Arrays.sort(randomNum); String[] fruits = {"apple", "banana", "kiwi"}; Arrays.sort(fruits); ArrayList alphabetList = new ArrayList(Arrays.asList("C", "A", "B", "a")); Collections.sort(alphabetList); 위의 예시대로 작성한다면, 기본 정렬인 오름차순으로 정렬하게 됩니다. 기본적으로 제공되는 기능들로 오름차순, 내림차.. 2021. 12. 24.
[Safari] 크롬 사파리 북마크 동기화 사파리 -> 파일 -> 가져오기 -> Google Chrome... 2021. 12. 21.
[InteliJ] Live reload적용 환경 InteliJ + SpringBoot + Thymeleaf 상황 구글링 해본 결과 다음과 같은 설정과 Resisty의 수정이 필요하다고 하여 적용하였으나 작동되지 않았습니다. spring.thymeleaf.cache=false spring.devtools.restart.enabled=true spring.devtools.livereload.enabled=true 해결방법 Run > Edit Configurations Running Application Update Policies의 On 'Update' action / On frame deactivation 항목을 Update classes and resources로 변경해줍니다. 2021. 12. 7.
[DataStructure] Queue 기본적인 자료구조인 큐에 대해서 작성한 소스를 통해 알아보도록 하겠습니다. 전체소스 import java.util.NoSuchElementException; class Queue { private Node front; private Node rear; public void add(T item) { Node node = new Node(item); if(rear != null) rear.next = node; rear = node; if(front == null) front = rear; } public T remove() { if(front == null) throw new NoSuchElementException(); T data = front.data; front = front.next; if(fro.. 2021. 11. 23.
[Spring] @RequestBody로 받아온 데이터가 null일 때 상황 API를 호출하여 컨트롤러에서 @RequestBody 어노테이션을 사용하여 데이터를 받아왔습니다. 하나의 데이터를 제외한 나머지는 정상적으로 받아오고, 특정 값만 받아오지 못하여 문제가 되었습니다. 해결책 "Spring mvc uses jackson to parse json by default. It is guessed whether the field name of the entity class is changed when the field name is converted to json." Spring은 json파싱을 위해 기본값으로 jackson 라이브러리를 사용한다고 합니다. 필드명을 아래와 같은 형태로 작성하게 되면 IDE혹은 Lombok에서 자동생성해주는 Getter/Setter의 메소드명은.. 2021. 11. 18.
[Algorithm] Euclidean Algorithm 유클리드 알고리즘에 대해 알아보고, 관련 문제를 해당 알고리즘으로 풀어보도록 하겠습니다. 유클리드 알고리즘, 유클리드 호제법(互除法)이란? 유클리드 호제법(-互除法, Euclidean algorithm) 또는 유클리드 알고리즘은 2개의 자연수 또는 정식의 최대공약수를 구하는 알고리즘의 하나이다. 호제법에 대한 설명은 다음과 같습니다. 두 수가 서로 상대방을 나누어서 결국 원하는 수를 얻는 알고리즘을 나타낸다. 호제법이라는 말은 서로(互) 나누기(除) 때문에 붙여진 이름이다. 이 뜻의 '호제' 라는 단어가 따로 있지는 않다. 다시, 유클리드 호제법 2개의 자연수(또는 정식) a, b에 대해서 a를 b로 나눈 나머지를 r이라 하면(단, a>b), a와 b의 최대공약수는 b와 r의 최대공약수와 같다. 이 성질.. 2021. 11. 7.
[Spring] Spring Batch 최근 몇 개월간 배치 프로그램 개발을 맡아서 진행하였는데, 반복적인 업무를 자동화 할 수 있다는 점에서 굉장히 흥미로웠습니다. 아직은 경험해 본 범위 내에서만 활용할 줄 알기때문에, 다른 사람들과 기업에서는 어떻게 활용하고 있는지, 추가적인 기능은 없는지 찾아보며 Spring Batch에 관하여 정리해보려 합니다. Spring Batch란 A lightweight, comprehensive batch framework designed to enable the development of robust batch applications vital for the daily operations of enterprise systems. 엔터프라이즈 시스템의 운영에 필수적인 강력한 배치 애플리케이션을 개발할 수 있도.. 2021. 11. 6.