programming 103

[programmers] 118667번 - 두 큐 합 같게 만들기 (brute force, 2022 KAKAO TECH INTERNSHIP)

1. 문제 및 예제 Brute force 문제임을 알았지만, 어느 정도 돌려야할지 모르겠어서 초반에 시간 초과가 좀 나온 문제다. 그것만 정하면 알고리즘을 세우는데는 문제가 없었다. 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2. 풀이과정 문제를 나누는건 간단하다. 1. 가장 큰 값이 전체 합의 반 보다 크거나, 전체 합이 홀수면 -1을 반환. 2. 만약 두 큐의 합이 같다면 count를 정답으로 반환. 3. 큰쪽의 원소를 pop하여 작은쪽에 push 4. 위의 과정 300000만큼 반복(전체 원소를 이동시키는 수) 다음은 전체 코드이다. #inclu..

[프로그래머스] 17679번 - 프렌즈4블록 (구현, 2018 KAKAO BLIND RECRUITMENT)

1. 문제 및 예제 엄청난 구현 문제. 설계를 잘 하면 그렇게 어렵지 않게 해결할 수 있다. 중요한 점은 한 배열에서 사라질 모든 블럭을 찾아낸다는 것 같다. 블럭이 포함되어 있다는게 조금 까다로웠다. https://school.programmers.co.kr/learn/courses/30/lessons/17679 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2. 풀이과정 문제를 나눠보았다. 1. 블록을 터트리고 터진 블록의 갯수를 반환한다. 2. 터진 블록을 아래로 내린다. 다음은 전체 코드이다. #include #include #include #in..

[프로그래머스] 17686번 - 파일명 정렬 (구현, 2018 KAKAO BLIND RECRUITMENT)

1. 문제 및 예제 간단하게 문자열을 다루는 문제였다. 문자열을 입력에 맞게 나누는 것은 어렵지 않았지만, 안정 정렬에 관한 지식이 있었어야 했다. C++같은 경우는 관련 정렬 함수를 지원해주었지만 미리 알지 않았으면 큰일날뻔 했다... https://school.programmers.co.kr/learn/courses/30/lessons/17686 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2. 풀이과정 안정 정렬을 알고있으면, compare함수를 커스텀하여 풀 수 있는 문제이다. 문제를 다음처럼 쪼개보았다. 1. 문자열을 전부 소문자로 변경한다. ..

[프로그래머스] 72411번 - 메뉴 리뉴얼 (구현, 2021 KAKAO BLIND RECRUITMENT)

1. 문제 및 예제 programmers에서 단계별로 문제를 풀다가 만난 문제다. 처음 문제를 보고 이게 대체... DP인가... 백트레킹인가... 싶었는데 입력 크기를 보고 무조건 브루트포스구나 싶었다. O(N^2)의 조합 문제로 해결하였다. 중간에 set container가 말을 안 들어서 vector로 전환하는 과정에서 시간이 좀 걸렸다. 30분에서 40분 정도? 걸린 것 같다. https://school.programmers.co.kr/learn/courses/30/lessons/72411 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2. 풀이과..

[MSA] Config 파일 관리를 위한 Spring cloud bus와 AMQP(Rabbit MQ)

1. 개요 저번 글에는 config 파일 즉 .yml파일 .properties파일을 외부에서 관리하고 해당 파일이 필요한 application에서 내용을 읽어오는 아키텍쳐를 설계하는 내용을 작성하였다. 이번에는 해당 아키텍쳐에서 AMQP 프로토콜을 사용에 한번에 End-point 메세지를 일괄적으로 전송해주는 Message Queue 서비스를 구현하기 위해 Spring cloud bus에 대한 내용을 적어볼 것이다. 2. 본문 - Message Queue 일단 이전의 구조에 대해 다시 살펴보자. 해당 구조를 보면 user_service 어플리케이션에서 변경사항이 생겼을 때 (설정 파일에 대한 변경사항) refresh라는 end point를 통해 변경된 결과를 가지고 왔다. 어플리케이션을 재기동 할 필요 ..

programming/MSA 2023.08.26

[프로그래머스] 68645번 - 삼각 달팽이 (재귀함수)

1. 문제 및 예제 이게 무슨 유형의 문제인가... 구현인가 싶었는데 재귀가 정답이었다. 배열에 그리는 문제를 전에 만나봐서 예외 처리 빼고는 어렵지 않게 설계할 수 있었다. 재귀함수 잘 쓰고 싶다.. 지금은 그냥 써야될 때 쓰는 수준? 책에서 본 알고리즘 풀이들은 재귀함수를 마치 무기처럼 자유자재로 쓰던데 그 경지에 도달할 때 까지 연습하고 싶다. https://school.programmers.co.kr/learn/courses/30/lessons/68645 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2. 풀이과정 문제를 나누는게 참 중요하다는걸 ..

[MSA] API gate-way 인증 설정과 Config service의 구현

1. 개요 해커톤에 참여하느라 정리글이 늦었다.. 한 강의를 몇개월째 듣고있는건지.. 사실 진도는 거의 막바지 이지만, 강의 정리는 조금 느린 수준.. 그래서 다시 천천히 정리하기로 했다. 이번 글은 API gate-way의 인증 설정 즉 Filter의 구현과 Config service의 개념 정리이다. 2. 본문 - api-gateway filter 구현 처음에 api-gateway에 왜 fiter까지 구현을 하는거지? 라는 생각을 했다. 결국 user-service로 넘어가면 해당 서비스에서 구현한 filter에서 다시 검증과정을 거칠것이기 때문이다. 지금 차근 차근 정리해보니 조금은 다른 원리이다. user-service: AuthenticationFilter - login 로직 실행 - login..

programming/MSA 2023.08.22

[MSA] Kafka 오류 해결... - Kafka를 완벽하게 삭제하는 방법

3주동안 멘탈 갈려서 쓰는글... 이번 글은 참고가 아니라 그냥 일기장 수준으로 내 신세한탄이 될 것이다... Inflearn에서 배운 kafka버전은 2.13이었다. 지금 시점 기준 최선 버전은 3.X여서 바로 2.13을 찾아 다운받았다. 일단 앞자리가 바뀌면 무슨 에러가 날지 모른다는 것을 비트코인 자동매매 만들면서 살로 느꼈기에... 버전은 최대한 맞춰봤다. 중요한건 강의자료대로 시행했다가 에러가 계속 났다는 것... sink에게 이상한 값을 보냈다.. 하... 그래서 kafka 파일을 전부 삭제하고 시행했는데.. 이상하게도 topic이 그래도 남아있었다. 그래서 connector파일과 jdbc파일까지 전부 삭제.. 그래도 이놈의 topic은 계속 나오기 시작했다... 하... 그래서 공식 문서를 ..

programming/MSA 2023.07.31

[백준 알고리즘] 1197번 - 최소 스패닝 트리 (크루스칼 알고리즘)

1. 문제 및 예시 실행 결과 solved.ac의 CLASS가 올라갈수록 모르는 알고리즘이 많다. 어제 토스 코테 한번 찍먹하고 많이 반성하게 됐다. 모르는 것을 공부하는게 맞는 것 같다. Union-find를 활용한 크루스칼 알고리즘을 공부하고 적용해보았다. 한큐에 초록 글자가 떠서 너무 좋았다. 출처: https://www.acmicpc.net/problem/1197 1197번: 최소 스패닝 트리 첫째 줄에 정점의 개수 V(1 ≤ V ≤ 10,000)와 간선의 개수 E(1 ≤ E ≤ 100,000)가 주어진다. 다음 E개의 줄에는 각 간선에 대한 정보를 나타내는 세 정수 A, B, C가 주어진다. 이는 A번 정점과 B번 정점이 www.acmicpc.net 2. 풀이과정 문제를 잘게 나눠봤다. 1. 문..

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

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