[MSA 3일차] - OpenFeign적용해서 RestTemplate과 차이 알기
·
MSA
이전 포스팅과 연관된 내용이 많기 때문에 참고용으로 올려두겠다. [MSA 2일차] - 스프링 클라우드로 MSA 구조 찍먹하기MSA에 대한 개념은 이전 포스팅을 참고 바란다.https://seungwon081.tistory.com/118 [MSA 2일차] - 스프링 클라우드 서비스 디스커버리 알아보자MSA구조로 프로젝트를 진행하면 무조건 듣는 필수 단어이다.seungwon081.tistory.com 📜OpenFeign이란?넷플릭스에서 만들어진 선언적인 HTTP Client 도구로써 외부 API를 쉽게 호출할 수 있도록 도와준다.선언적이란 어노테이션 사용을 의미하는데 OpenFeign은 인터페이스에 어노테이션만 붙여주면 구현이 되는 것이다. 이러한 방식은 JPA방식과 매우 유사하다고 한다.RestTemp..
[백준/Python] - 13913번 숨바꼭질4
·
백준[파이썬]
https://www.acmicpc.net/problem/13913📜제출코드 from collections import dequeN, K = map(int ,input().split())dot_list = [0] * 100001visited = [0] * 100001q = deque()q.append(N)def path(current): arr = [] temp = current for _ in range(dot_list[current] + 1): arr.append(temp) temp = visited[temp] print(' '.join(map(str, arr[::-1])))while q: current = q.popleft() if curr..
[백준/Python] - 1929번 소수 구하기
·
백준[파이썬]
https://www.acmicpc.net/problem/1929📜제출코드 import sysimport mathinput = sys.stdin.readlineM, N = map(int, input().split())#1과 0은 무조건 True이기 때문prime = [True for _ in range(N+1)]prime[0], prime[1] = False, Falsefor i in range(2, int(math.sqrt(N))+1): if prime[i] == True: j = 2 while j * i N: prime[i*j] = False j += 1for i in range(M, N+1): if prime[i] == ..
[백준/Python] - 2485번 가로수
·
백준[파이썬]
https://www.acmicpc.net/problem/2485 📜제출코드 #최대 공약수를 활용해서 푸는 문제import sysinput = sys.stdin.readlineN = int(input())N_list = [int(input())]intervals = []# 유클리드 호제법def gcd(a,b): while b >0: a, b = b, a % b return afor _ in range(1,N): N_list.append(int(input())) intervals.append(N_list[_] - N_list[_-1])# 최대 공약수로 구하는 간격의 초기값을 입력해주고max_num = intervals[0]for i in range(1,len(interv..
[백준/Python] - 24511번 queuestack
·
백준[파이썬]
https://www.acmicpc.net/problem/24511 📜제출코드 from collections import dequeimport sysinput = sys.stdin.readlineN = int(input())A = list(map(int,input().split()))B = list(map(int,input().split()))M = int(input())C = list(map(int,input().split()))q = deque([])for i in range(N): # 큐인 자료구조만 모아주기기 if A[i] == 0: q.append(B[i])#오른쪽으로 갈 수록 나중에 들어온 값으로 처리했다.# ex) deque([1,4])# --> deque([2,1..
[백준/Python] - 1790번 수 이어 쓰기 2
·
백준[파이썬]
https://www.acmicpc.net/problem/1790 📜제출코드 N, K = map(int, input().split())#1의 자리와 숫자 개수 초기화digits, count, start_num = 1, 9, 1while K > digits * count: K -= (digits * count) digits += 1 count *= 10 start_num *= 10num = str(start_num + (K-1) // digits)if int(num) > N: print(-1)else: num_idx = (K-1) % digits print(num[num_idx]) 📜풀이단순한 수학적인 개념과 구현에 대한 개념이 있으면 풀 수 있는 문제이다. 📜..
[MSA 2일차] - 스프링 클라우드 서비스 디스커버리 알아보자
·
MSA
MSA구조로 프로젝트를 진행하면 무조건 듣는 필수 단어이다. 📜 스프링 유레카 유레카란 뭘까? 유레카를 알기전에는 알아야할 기술이 있는데 바로 로드 밸런싱이다.📜로드 밸런싱네트워크 또는 서버에 가해지는 부하 트래픽을 분산시켜주는 기술을 의미한다.📜로드 밸런서클라이언트와 서버 사이에 존재하며 한대의 서버로 트래픽이 몰리지 않도록 관리를 하여 서버가 최적의 성능을 내도록 해준다.정적으로 서비스를 찾는 과정에서 서비스의 크기가 커지면 모든 ip와 port들을 수기로 작성해야하기때문에 로드 밸런서만 있으면 되는 것이 아니다.그래서 우리는 서비스 디스커버리(유레카)와 같은 기술과 함께 사용해야한다. 📜서비스 레지스트리사용 가능한 서비스의 목록을 관리하고, 서비스를 등록/해제/조회 할수있는 API를 제공하..
[백준/Python] - 11399번 ATM
·
백준[파이썬]
https://www.acmicpc.net/problem/11399 제출코드N = int(input())N_list = list(map(int,input().split()))N_list.sort()ans = 0for i in range(N): temp = 0 for j in range(i+1): temp += N_list[j] ans += tempprint(ans) 풀이문제에서 가장 돈 인출하는데 걸리는 시간 가장 작게 걸리는 사람들부터 뽑으니까오름차순으로 정렬해준다. 각 순번마다 걸리는 시간을 구해줘야되니까 2중 for문으로 순번마다 걸리는 시간을 구해줬다.i번째가 걸리는 시간을 다음과 같이 정해주고temp에 걸리는 시간을 다 넣어준다.그리고 마지막에 ans에 누적저장 내가..
[MSA 2일차] - 스프링 클라우드로 MSA 구조 찍먹하기
·
MSA
MSA에 대한 개념은 이전 포스팅을 참고 바란다.https://seungwon081.tistory.com/118 [MSA 2일차] - 스프링 클라우드 서비스 디스커버리 알아보자MSA구조로 프로젝트를 진행하면 무조건 듣는 필수 단어이다. 📜 스프링 유레카 유레카란 뭘까? 유레카를 알기전에는 알아야할 기술이 있는데 바로 로드 밸런싱이다.📜로드 밸런싱네트워크 또seungwon081.tistory.com📜정적으로 서비스 디스커버리 구현user-service application-local.ymlspring: cloud: discovery: client: simple: instances: # 'my-backend-service'에 대한 인스턴스 정의 ..
[백준/Python] - 24479번 알고리즘 수업 - 깊이 우선 탐색 1
·
백준[파이썬]
https://www.acmicpc.net/problem/24479✅제출코드import syssys.setrecursionlimit(int(1e6))input = sys.stdin.readlineN ,M, R = map(int,input().split())node = [[] for _ in range(N+1)]result = [0] * (N+1)visited = [0] *(N+1)for _ in range(M): u,v = map(int,input().split()) #무방향 그래프이기때문에 연결된 노드들은 해당 노드번호에 바꿔서 넣어준다 node[u].append(v) node[v].append(u)#인접정점은 오름차순으로 방문한다고 했으니 오름차순 정렬해준다.for i in ra..