본문 바로가기

전체 글

(28)
프로그래머스 Java Lv2 의상 https://school.programmers.co.kr/learn/courses/30/lessons/42578 이 문제는 주어진 의상의 종류와 각 종류 별로 몇 개의 의상이 존재하는지만 구별한다면 쉽게 해결 할 수 있는 문제이다. 본인의 경우 HashMap을 이용하여 의상의 종류를 구분하고 종류 별 개수를 구하였다. 입력된 이차열 배열 clothes에서 의상의 종류만을 추출하여 HashMap 에 저장한다. 아직 HashMap에 저장된 적이 없다면 종류와 1을 저장. 이미 저장되어 있다면 저장된 값을 1 증가 시키면 된다. 이제 저장된 의상의 종류와 그 수로 가능한 조합의 수를 계산해보자. 그럼 일단 경우를 나누어 생각해보겠다. (의상의 종류 별로 개수를 a, b, c, ... 라고 하겠다.) 1) 의..
프로그래머스 Java Lv2 두 원 사이의 정수 쌍 https://school.programmers.co.kr/learn/courses/30/lessons/181187 해당 문제는 원의 방정식과 사분면을 이용하면 간단하게 풀 수 있다. 문제에서 요구하는 두 원 사이의 공간에서 x좌표와 y좌표가 모두 정수인 점들은 각 사분면에 대칭하는 것을 볼 수 있다. 그러므로 하나의 사분면에 존재하는 점들의 수를 구한뒤, 4를 곱하여 모든 점의 수를 계산할 수 있다. 그렇다면 하나의 사분면에 존재하는 점들의 수는 어떻게 구할까? x좌표와 y좌표가 모두 정수인 점들이므로, x좌표가 정수인 경우 가능한 y좌표의 범위를 구하여 계산을 하였다. 이 때, 가능한 y좌표의 범위를 구하기 위해 원의 방정식을 이용하였다. 중심이 (a, b)인 원의 방정식 : (x-a)² + (y-b..
프로그래머스 Java Lv2 구명 보트 https://school.programmers.co.kr/learn/courses/30/lessons/42885 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이번 문제는 PriorityQueue를 이용하여 해결하였다. PriorityQueue에 값을 한번 넣을 때 마다 하나의 구명 보트가 추가 된다고 생각하였다. 이 때, PriorityQueue에 저장되는 값은 1명의 인원이 구명 보트에 타고 남은 무게 제한(kg) 이다. *PriorityQueue - 이하 PQ 전체적인 흐름은 다음과 같다. 우선, 사람들의 몸무게를 담은 배열을 오름차순으로 정렬하였..
프로그래머스 Java Lv2 숫자 변환하기 https://school.programmers.co.kr/learn/courses/30/lessons/154538# 해당 문제는 Queue를 이용하여 해결하였다. x를 y로 변환하기 위한 "최소 연산 횟수"를 계산해야 하므로 Queue를 이용하여 x에 "n 을 더하기, 2를 곱하기, 3을 곱하기" 3가지 연산을 하고 Queue에 넣는 방식을 취했다. Queue에 값을 넣을 때는 해당 값이 몇 번 연산된 값인지 표기하기 위해 int[] 를 사용하여 값과 연산 횟수를 같이 저장하였다. 그리고 가장 먼저 y와 같아지는 경우의 시행 횟수를 return 하도록 하였다. "Queue를 사용하므로 가장 처음 같아지는 경우가 최소 연산 횟수이다." 만약 같아 지는 경우가 없다면, 변환이 불가능한 경우이므로 -1 를 ..
비내림차순(non-decreasing)과 오름차순(ascending) 알고리즘 문제를 풀던 중 "비내림차순으로 정렬된" 이라는 문장을 보았다. 내림차순도, 오름차순도 아니고 대체 뭐지... 라는 생각이 들어서 찾아보았다. 과연 "비내림차순"은 무엇일까? 비내림차순, 영어로는 non-decreasing. [ 1 2 3 3 3 4 5 ], [ 1 2 3 4 5 ] 순서로 정렬된 수열들을 보았다고 생각하자. 사람들은 일반적으로 두 수열에 대해서 "오름차순으로 정렬이 되었구나" 라고 생각할 것이다. 하지만 [ 1 2 3 3 3 4 5 ]는 비내림차순(non-decreasing)이고, [ 1 2 3 4 5 ]는 오름차순(ascending)이다. 둘의 차이는 간단하다. 숫자가 증가하는 순서로 정렬된 상태에서 크기가 같은 수가 포함될 수 있는가의 차이이다. 내림차순은 수가 증가하거나 ..
[KoNLPY] M2 맥북 KoNLPy JVM Not Found 해결법 올해 상반기 프로젝트를 하면서 챗봇을 사용할 일이 있었고, 한국어 자연어 처리를 위해 KoNLPY 를 사용하였다. 처음 KoNLPy를 사용했을 때는 윈도우 환경에서 사용을 했고, 문제가 발생하지 않았다. 하지만 프로젝트 도중 사용하던 그램에 문제가 생겨 M2 맥북을 새로 사고 처음부터 환경설정을 하는데... KoNLPy에서 문제가 발생하기 시작했다. KoNLPy에서 맥북에 설치된 jvm을 찾지 못했다. File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/jpype/_jvmfinder.py", line 212, in get_jvm_path raise JVMNotFoundException("No JVM sh..
[Jython] Java에서 python 실행시키기 스프링 프로젝트에서 python으로 작성한 챗봇을 실행시키고자 한다. Jython을 사용하면 Java에서도 python을 실행시킬 수 있다는 정보를 얻어 한번 시도를 해보았다. build.gradle 파일에 dependency를 추가해주자. https://www.jython.org/news.html Downloads The Python runtime on the JVM www.jython.org https://jython-devguide.readthedocs.io/en/latest/release_jy.html?highlight=build.gradle 23. How To Release Jython — Jython Developer's Guide 23. How To Release Jython These ar..
[NCP] Micro 서버 생성 오류 - 해결편 사실... 해결은 글을 쓴 당일에 되었지만 이제야 글을 작성하고 있다. 글을 작성하고 약 20분 뒤 서버 생성이 완료되었다는 메일을 받았다!! 아니 글을 작성하고 바로 된다고..? 뭐지 왜 갑자기 된 거지?라고 생각하던 도중 NCP에서 메일이 한 통 더 왔다. 문의를 오후 7시가 넘어서 작성했기 때문에 당연히 비업무 시간이라고 생각을 하고 있었는데 바로 처리를 해주었다. 생성이 늦었던 것은 그냥 "일시적 오류"라고 한다. 구체적 원인은 알 수 없었지만 이게 어딘가. 오늘의 교훈 : NCP에서 서버 생성이 오래 걸리는 것 같으면 바로 문의를 넣자