[ 프로그래머스 자바 ] LV2 피보나치 수
·
코딩테스트
📚 문제 설명피보나치 수는 F(0) = 0, F(1) = 1일 때, 1 이상의 n에 대하여 F(n) = F(n-1) + F(n-2) 가 적용되는 수 입니다.예를들어F(2) = F(0) + F(1) = 0 + 1 = 1F(3) = F(1) + F(2) = 1 + 1 = 2F(4) = F(2) + F(3) = 1 + 2 = 3F(5) = F(3) + F(4) = 2 + 3 = 5와 같이 이어집니다.2 이상의 n이 입력되었을 때, n번째 피보나치 수를 1234567으로 나눈 나머지를 리턴하는 함수, solution을 완성해 주세요.✅ 제한사항n은 2 이상 100,000 이하인 자연수입니다.💻 구현 코드class Solution { public int solution(int n) { lon..
[ 프로그래머스 자바 ] LV2 다음 큰 숫자
·
코딩테스트
📚 문제 설명자연수 n이 주어졌을 때, n의 다음 큰 숫자는 다음과 같이 정의 합니다.조건 1. n의 다음 큰 숫자는 n보다 큰 자연수 입니다.조건 2. n의 다음 큰 숫자와 n은 2진수로 변환했을 때 1의 갯수가 같습니다.조건 3. n의 다음 큰 숫자는 조건 1, 2를 만족하는 수 중 가장 작은 수 입니다.예를 들어서 78(1001110)의 다음 큰 숫자는 83(1010011)입니다.자연수 n이 매개변수로 주어질 때, n의 다음 큰 숫자를 return 하는 solution 함수를 완성해주세요.✅ 제한사항n은 1,000,000 이하의 자연수 입니다.💻 구현 코드 -1class Solution { public int solution(int n) { int tmp = n+1; ..
[ 프로그래머스 자바 ] LV2 전력망 둘로 나누기
·
코딩테스트
📚 문제 설명n개의 송전탑이 전선을 통해 하나의 트리 형태로 연결되어 있습니다. 당신은 이 전선들 중 하나를 끊어서 현재의 전력망 네트워크를 2개로 분할하려고 합니다. 이때, 두 전력망이 갖게 되는 송전탑의 개수를 최대한 비슷하게 맞추고자 합니다.송전탑의 개수 n, 그리고 전선 정보 wires가 매개변수로 주어집니다. 전선들 중 하나를 끊어서 송전탑 개수가 가능한 비슷하도록 두 전력망으로 나누었을 때, 두 전력망이 가지고 있는 송전탑 개수의 차이(절대값)를 return 하도록 solution 함수를 완성해주세요.✅ 제한사항n은 2 이상 100 이하인 자연수입니다.wires는 길이가 n-1인 정수형 2차원 배열입니다.wires의 각 원소는 [v1, v2] 2개의 자연수로 이루어져 있으며, 이는 전력망의 ..
[ 프로그래머스 자바 ] LV1. 가장 가까운 같은 글자
·
코딩테스트
📚 문제 설명문자열 s가 주어졌을 때, s의 각 위치마다 자신보다 앞에 나왔으면서, 자신과 가장 가까운 곳에 있는 같은 글자가 어디 있는지 알고 싶습니다.예를 들어, s="banana"라고 할 때, 각 글자들을 왼쪽부터 오른쪽으로 읽어 나가면서 다음과 같이 진행할 수 있습니다.b는 처음 나왔기 때문에 자신의 앞에 같은 글자가 없습니다. 이는 -1로 표현합니다.a는 처음 나왔기 때문에 자신의 앞에 같은 글자가 없습니다. 이는 -1로 표현합니다.n은 처음 나왔기 때문에 자신의 앞에 같은 글자가 없습니다. 이는 -1로 표현합니다.a는 자신보다 두 칸 앞에 a가 있습니다. 이는 2로 표현합니다.n도 자신보다 두 칸 앞에 n이 있습니다. 이는 2로 표현합니다.a는 자신보다 두 칸, 네 칸 앞에 a가 있습니다...
MessageBroker - Rabbit , Kafka
·
스프링 | 스프링 부트
1-1. Message BrokermessageBroker는 프로듀서와 컨뮤서와는 별개의 서버에 구동된다.borker는 사용자가 원하는걸로 설정하면 됨, Rabbit, Kafka, AWS, Azura 등producer → messageBroker에 데이터를 보낸다consumer는 messageBroker를 확인해서 데이터를 가져간다.messageBroker는 칸막이 ? 같이 나눠져 있기 때문에 괜춘여러명 → 택배함 → 여러명 이렇게 가면됨1-2. MessageBroker의 2가지 방식대표로 Rabbit, Kafka 각각 알아봄1-2-1 Rabbit하나 또는 비교적 적은 수의 서버에 설치한다.⚙️ 사용하는 프로토콜통신으로 AMQP 프로토콜을 사용한다.📝 데이터 저장 형태큐(queue) 형태로 저장주로 메..
SSE란 ?
·
CS 공부
1-1 SSE란 ?(Server Sent Events)서버에서 클라이언트로 단방향으로 실시간 데이터를 보내는 웹 기술1-2 SSE 동작 방식클라이언트가 서버에게 SSE로 통신하자는 요청을 보냄🫥 EventSource 객체를 통해 서버에 HTTP 요청🫥 이벤트가 발생하면 발생하면, 클라이언트 쪽으로 알려달라는 요청을 보내는거임서버는 이 요청을 수신하고, 수락하는 응답을 보냄클라이언트는 서버에게 수락 응답을 받고, 서버가 보내주는 데이터에 반응할 준비를 해야함연결이 완료되면, 서버는 정해진 이벤트가 있을때마다 클라이언트에게 메시지 보냄🫥 단방향 통신이라서, 클라이언트는 이에 응답할 수 없음 필요한 작업이 끝나면, 클라이언트나 서버에서 상대방에게 종료를 통보하는 메세지를 보내면 연결이 끝남 (그럼 연결을..
[ 프로그래머스 자바 ] LV1 삼총사
·
코딩테스트
📚 문제 설명한국중학교에 다니는 학생들은 각자 정수 번호를 갖고 있습니다. 이 학교 학생 3명의 정수 번호를 더했을 때 0이 되면 3명의 학생은 삼총사라고 합니다. 예를 들어, 5명의 학생이 있고, 각각의 정수 번호가 순서대로 -2, 3, 0, 2, -5일 때, 첫 번째, 세 번째, 네 번째 학생의 정수 번호를 더하면 0이므로 세 학생은 삼총사입니다. 또한, 두 번째, 네 번째, 다섯 번째 학생의 정수 번호를 더해도 0이므로 세 학생도 삼총사입니다. 따라서 이 경우 한국중학교에서는 두 가지 방법으로 삼총사를 만들 수 있습니다.한국중학교 학생들의 번호를 나타내는 정수 배열 number가 매개변수로 주어질 때, 학생들 중 삼총사를 만들 수 있는 방법의 수를 return 하도록 solution 함수를 완성하..
[ 프로그래머스 자바 ] : Lv2 영어 끝말잇기
·
코딩테스트
📚 문제 설명1부터 n까지 번호가 붙어있는 n명의 사람이 영어 끝말잇기를 하고 있습니다. 영어 끝말잇기는 다음과 같은 규칙으로 진행됩니다.1번부터 번호 순서대로 한 사람씩 차례대로 단어를 말합니다.마지막 사람이 단어를 말한 다음에는 다시 1번부터 시작합니다.앞사람이 말한 단어의 마지막 문자로 시작하는 단어를 말해야 합니다.이전에 등장했던 단어는 사용할 수 없습니다.한 글자인 단어는 인정되지 않습니다.다음은 3명이 끝말잇기를 하는 상황을 나타냅니다.tank → kick → know → wheel → land → dream → mother → robot → tank위 끝말잇기는 다음과 같이 진행됩니다.1번 사람이 자신의 첫 번째 차례에 tank를 말합니다.2번 사람이 자신의 첫 번째 차례에 kick을 말합..
[ 프로그래머스 자바 ] : LV2 예상 대진표
·
코딩테스트
📚 문제 설명△△ 게임대회가 개최되었습니다. 이 대회는 N명이 참가하고, 토너먼트 형식으로 진행됩니다. N명의 참가자는 각각 1부터 N번을 차례대로 배정받습니다. 그리고, 1번↔2번, 3번↔4번, ... , N-1번↔N번의 참가자끼리 게임을 진행합니다. 각 게임에서 이긴 사람은 다음 라운드에 진출할 수 있습니다. 이때, 다음 라운드에 진출할 참가자의 번호는 다시 1번부터 N/2번을 차례대로 배정받습니다. 만약 1번↔2번 끼리 겨루는 게임에서 2번이 승리했다면 다음 라운드에서 1번을 부여받고, 3번↔4번에서 겨루는 게임에서 3번이 승리했다면 다음 라운드에서 2번을 부여받게 됩니다. 게임은 최종 한 명이 남을 때까지 진행됩니다.이때, 처음 라운드에서 A번을 가진 참가자는 경쟁자로 생각하는 B번 참가자와 몇..
웹소켓 개념
·
CS 공부
✔️ 들어가기전 사전 지식1. 단방향http 1.1 이하에서는 클라이언트가 서버에게 요청을 보내고, 서버가 해당 요청에 응하여 응답을 보내는 방식서버가 클라이언트에게 메세지를 보내는건, 클라이언트가 요청을 할때임 ㅇㅇ🙋🏻‍♀️ 클라이언트의 요청없이는 서버가 클라이언트에게 데이터를 보내지 못함 2. pooling클라이언트가 주기적으로 서버에게 요청( 클라이언트 → 서버 )을 보내서 상대가 새챗을 보냈는지 확인🙅🏻 Pooling 단점요청을 보내는 주기만큼의 지연이 발생할 수 있음 → 즉각적으로 반응하기 힘듬 ㅇㅇ 계속해서 불필요한 요청들이 보내질 수 있음 (단점 1번 참고)🙋🏻‍♀️ Polling(폴링)도 클라이언트가 먼저 요청을 보내야만 서버가 응답하는 구조3. Long pooling2번의 po..