programming 104

[백준 알고리즘] 2467번 - 용액 (투 포인터)

1. 문제 및 예시 실행 결과 투 포인터를 활용하는 문제... 나름 재밌었다. 보통 이런 경우는 이분탐색 처럼 구현을 하게 되는데 그 과정은 어렵지 않지만 어떤 문제로 접근해야하는지 찾는 과정이 이분탐색 혹은 투 포인터 문제의 핵심이라는 생각이 든다. 출처: https://www.acmicpc.net/problem/2467 2467번: 용액 첫째 줄에는 전체 용액의 수 N이 입력된다. N은 2 이상 100,000 이하의 정수이다. 둘째 줄에는 용액의 특성값을 나타내는 N개의 정수가 빈칸을 사이에 두고 오름차순으로 입력되며, 이 수들은 모두 - www.acmicpc.net 2. 풀이과정 문제를 잘게 나눠봤다. 1. 입력 2. 이분탐색 진행 왼쪽과 오른쪽으로 부터 시작하여 두 값의 합이 0보다 크면 음수쪽이..

[백준 알고리즘] 11779번 - 최소비용 구하기 2 (Dijkstra에서 경로를 출력하는 방)

1. 문제 및 예시 실행 결과 간단한 다익스트라 문제이지만, 경로를 출력해야한다. 처음에는 문자열을 옮기는 방식으로 풀었는데, 원인을 알 수 없는 이유로 틀렸다는 문자만 계속 떴다. 그래서 경로를 배열에 저장하는 방식을 사용했다... 문자열도 같은 원리인데 대체 왜 그러는지 참... 출처: https://www.acmicpc.net/problem/11779 11779번: 최소비용 구하기 2 첫째 줄에 도시의 개수 n(1≤n≤1,000)이 주어지고 둘째 줄에는 버스의 개수 m(1≤m≤100,000)이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스 www.acmicpc.net 2. 풀이과정 문제를 잘게 나눠봤다. 1. 입력 2. 다익스트라 진행 3. ..

[MSA] Service Discovery와 API gate-way - Spring cloud netflix Ecreka, Spring cloud gate-way

1. 개요 인프런에서 MSA를 배우고 있다. 8만원 정도의 강의인데 만족도가 정말 높다. 이 글은 해당 인프런에 올라온 이도원님의 강의를 보고 공부한 내용을 정리하는 글이다. 다음은 강의 링크이다. Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA) - 인프런 | 강의 Spring framework의 Spring Cloud 제품군을 이용하여 마이크로서비스 애플리케이션을 개발해 보는 과정입니다. Cloud Native Application으로써의 Spring Cloud를 어떻게 사용하는지, 구성을 어떻게 하는지에 대해 www.inflearn.com 멋쟁이사자처럼이라는 동아리에서 공부하면서 프로젝트가 엄청 많아졌고 이를 하나의 로그인 서버로 관리하고 싶다는 생각으로 MSA를 공부하게 되었다..

programming/MSA 2023.07.04

[백준 알고리즘] 14938번 - 서강그라운드

1. 문제 및 예시 실행결과 다익스트라 문제라는 것을 처음부터 알게 되었다. 문제 잘 읽고 푸는 습관을 들여야하는데... 부등호하나 잘못써서 두번의 틀렸습니다가 찍힐뻔 했다... 다익스트라가 손에 조금 익어서 해당 알고리즘을 사용하고 있는데 플로이드 워셜로 나중에 공부해서 적재적소에 사용할 수 있으면 좋겠다. 출처: https://www.acmicpc.net/problem/14938 14938번: 서강그라운드 예은이는 요즘 가장 인기가 있는 게임 서강그라운드를 즐기고 있다. 서강그라운드는 여러 지역중 하나의 지역에 낙하산을 타고 낙하하여, 그 지역에 떨어져 있는 아이템들을 이용해 서바이벌을 www.acmicpc.net 2. 풀이 과정 문제 쪼개기 1. 입력 2. 모든 노드를 시작점으로 설정 - cache..

[백준 알고리즘] 12851번 - 숨바꼭질 2 (BFS에서의 같은 depth 처리과정)

1. 문제 및 예시 실행결과 BFS문제인 것은 파악했는데 visited 배열을 처리하는 과정에서 조금 힘들었다. 논리적으로 길을 먼저 세워 풀면 되는 문제를 너무 급하게 덥벼든 것 같다. visited를 배열에 삽입하기 전에 처리하는 것이 좋을 수 있지만(Queue가 커지는 것을 방지) 이 문제 처럼 같은 depth의 중복을 처리해야하는 문제는 queue에서 노드를 꺼내서 visited처리를 하는게 좋을 수 있다는 것을 깨달았다. 다음은 예외 케이스이다. 1 3 출처: https://www.acmicpc.net/problem/12851 12851번: 숨바꼭질 2 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)..

[백준 알고리즘] 17144번 - 미세먼지 안녕!

1. 문제 및 예시 실행결과 구현과 시뮬레이션 문제이다. 어우 힘들어... 구현은 아무래도 높은 집중력과 예외처리를 위한 설계가 중요시 되는 것 같다. 한번 오류나면 멘탈이 나가서 문제 난이도가 생각보다 높게 느껴진다. 재능있는 사람들은 처음부터 오류없는 코드를 잘 작성하겠지만, 나는 그런 것 같지는 않으니 최대한 고심해서 코드를 짠다. 그래서 이리 힘든 것인지... 출처: https://www.acmicpc.net/problem/17144 17144번: 미세먼지 안녕! 미세먼지를 제거하기 위해 구사과는 공기청정기를 설치하려고 한다. 공기청정기의 성능을 테스트하기 위해 구사과는 집을 크기가 R×C인 격자판으로 나타냈고, 1×1 크기의 칸으로 나눴다. 구사 www.acmicpc.net 2. 풀이 과정 알고..

[프로그래머스] 138476번 - 귤고르기

1. 문제 및 예제 담은 귤의 종류가 적다는건 갯수가 많은 종류를 순서대로 나열해 순서대로 박스에 넣어주면 된다. 귤의 종류와 그 갯수를 저장할 자료구조 하나 그리고 그것을 갯수로 정렬할 알고리즘을 생각하면 별로 어렵지 않은 문제이다. C++의 sort()를 사용했으니 시간복잡도는 O(NlogN)이다. https://school.programmers.co.kr/learn/courses/30/lessons/138476 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2. 풀이과정 처음 내가 이 코드를 작성하고 제출을 했을 때 분명 더 좋은 풀이법이 있을거라 ..

ChatGPT를 개발할 때 사용해볼까요? - (Jetbrains제품에 ChatGPT플러그인 추가하는 방법)

1. 개요 그놈의 ChatGPT, ChatGPT... 우리 졸업작품 교수님도 무조건 ChatGPT 프로젝트에 넣으라고 하셔서 주제를 통으로 바꿔야할 판이다. 뭐 쩔 수 있나. 강력한 도구인 건 맞는 것 같다. 내가 요구하는걸 그대로 뱉어주다니... 조금만 더 있으면 정말 아이언맨의 자비스나 Friday처럼 사람처럼 말하는 사람이 올 것 같기도? 그러다가 SKT의 기술블로그에서 ChatGPT를 IDE에서 편하게 사용할 수 있는 plugin을 보고 진짜 유용할 것 같다는 생각이 들어 그대로 넣어보았다. 이 글을 읽어보는 여러분들도 한번 해보시길! 2. 본문 환경은 Intellij Ultimate버전 하지만 근본적인 플러그인 설치 방법은 다르지 않을 것 같다. 상단의 [File] → [Setting]에 접속하..

[프로그래머스] 86491번 - 최소직사각형 (완전탐색)

1. 문제 및 예제 완전탐색이라고 그냥 너무 무식하게 다 비교하면 안된다는걸 알게된 문제. 처음에는 모든 높이와 넓이를 매칭시키고(여기서 나온 시간복잡도는 O(N*N) 이걸 모든 명함과 비교하는 방법.(결과적으로 총 시간 복잡도는 O(N*N*N)... 내가 미친거지 아주) 생각해보면 참 답이 없다 싶었다... 아직도 이런 문제로 해매다니... 자괴감 들었지만 그래도 다른 풀이들 참고하면서 풀었다. 개인적인 의견으로 수학 못 하는 나에게 이 문제는 레벨1 문제는 아닌듯... 출처: https://school.programmers.co.kr/learn/courses/30/lessons/86491 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고,..

[Python, Unix, Ubuntu] Python 프로젝트를 유닉스에 배포 시 생기는 오류 - (ImportError: No module named '')

1. 개요 비트코인 자동매매 시스템을 만들고 Unix 서버에 배포하였다. 클라우드를 이용하고 싶었지만 정말 돈이 감당이 안돼서 무서웠다. 그래서 안쓰는 노트북에 Ubuntu를 설치하고 서버로 사용하고 있는데, 해당 과정에서 발생한 오류를 해결하는 과정을 적고자 한다. 2. 본문 가장먼저 만난 오류는 ImportError이다. 내가 작성한 Python 객체를 import해서 사용하기 때문에 해당 프로젝트를 path를 설정하지 않으면 module을 찾지 못한다. 다음은 내가 작성한 프로젝트의 구조이다. 해당 경로에서 machine, db에 정의된 모듈을 써야하지만 해당 path를 찾지 못하면 아무 의미 없다. 다음과 같은 명령어로 python이 모듈을 import하는 경로를 알 수 있다. (리눅스 환경에서)..