알고리즘 11

[파이썬]-백준(BOJ)12852 _ 1로만들기 ver 2

https://www.acmicpc.net/problem/12852 12852번: 1로 만들기 2 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 자연수 N이 주어진다. www.acmicpc.net 해설 정답을 위한 배열을 만들어 주고 인덱스를 돌면서 1+, 2*, 3* 인덱스에 자기 연산 더하기 1을 저장해주는데 이미 들어가 있는 값보다 작을 경우에만 해준다. 그리고 경로배열은 점화식으로 저장해준다 처음에 무식하게 윗줄부터 3 나누고 2나누고 1 빼서 구하려고했지만 불가능했다. 그다음 Deep Copy 를 이용해 경로들을 저장해 주었지만 소용이 없었다. Deepcopy는 새로운배열을할당해 시간이 오래 걸리고 얕은 복사를 하니 다른경로들도 다 저장되는 오류가 생겼다 12345678910111213..

백준/DP 2021.06.07

요청 응답 흐름 과정

정보의 전송 과정 요청 응답 흐름 처리 Browser 웹서버에 원하는 정보를 쌍방향으로 요청을 하고 응답을 받아 사용자에게 보여준다 요청 흐름 1. URL해석 : URL을 입력했을 때 브라우저에서 처음 하는 일을 URL을 해석해 요청을 만드는 일! *URL : 네트워크 상에서 자원이 어디 있는지를 알려주기 위한 규약, 웹서버에 '무엇을 요청할 것인가' 내용 2. http method get : 조회 post : 입력 put, patch: 수정, 새로운 자원이면 입력 delete : 삭제 응답흐름 1. 요청한 도메인의 서버에서 path를 파악해 response를 생성한다! 잘못된 컨텐츠 타입이 들어오면 해석을 못한다! Domain vs Host Domain : 한 네트워크(서비스)를 대표하는 이름 Host..

[파이썬]-백준(BOJ) 10815번_ 숫자카드

www.acmicpc.net/problem/10815 10815번: 숫자 카드 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net 해설 이분 탐색으로 풀어야 합니다!! 선형 탐색으로 접근해서 시간 초과가 난후, index 함수로 인한 시간초과후 이분탐색으로 풀었습니다. 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172#..

백준 2021.05.03

[파이썬]-백준(BOJ) 11000 _ 강의실 배정

www.acmicpc.net/problem/11000 11000번: 강의실 배정 첫 번째 줄에 N이 주어진다. (1 ≤ N ≤ 200,000) 이후 N개의 줄에 Si, Ti가 주어진다. (1 ≤ Si < Ti ≤ 109) www.acmicpc.net 해설 heapq를 사용해서 해결한다. 일단 받고 정렬한뒤, 끝값을 힙에 넣어줘서 새로드러오는 값이 크거나 같다면 바꿔고 최종적으로 길이를 출력해준다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 # 강의실 배정 # 시간 제한 메..

백준 2021.04.29

[파이썬]-백준(BOJ) 2075_N번째 큰수

www.acmicpc.net/problem/2075 2075번: N번째 큰 수 첫째 줄에 N(1 ≤ N ≤ 1,500)이 주어진다. 다음 N개의 줄에는 각 줄마다 N개의 수가 주어진다. 표에 적힌 수는 -10억보다 크거나 같고, 10억보다 작거나 같은 정수이다. www.acmicpc.net 해설 처음에 풀이가 안나서 참고해서 최대 힙으로 풀고자 했으나, 메모리 초과가 났다. 결국 몇시간 머리를 쥐어짜다가. 정답을 참고하였는데 상위 N개만 유지해주는 코드를 만드는 것이였다. 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465# N번째 큰수# ..

백준/정렬 2021.04.29

[파이썬]-백준(BOJ)1302 _ 베스트셀러

www.acmicpc.net/problem/1302 1302번: 베스트셀러 첫째 줄에 오늘 하루 동안 팔린 책의 개수 N이 주어진다. 이 값은 1,000보다 작거나 같은 자연수이다. 둘째부터 N개의 줄에 책의 제목이 입력으로 들어온다. 책의 제목의 길이는 50보다 작거나 같고 www.acmicpc.net 해설 딕셔너리를 만들어 준 다음 최대값을 가지고오고, 최대값인 배열별로 정렬을 해준뒤, 반환하면 된다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 6..

백준/정렬 2021.04.28

[파이썬]-백준(BOJ) 12865_평범한 배낭

www.acmicpc.net/problem/12865 12865번: 평범한 배낭 첫 줄에 물품의 수 N(1 ≤ N ≤ 100)과 준서가 버틸 수 있는 무게 K(1 ≤ K ≤ 100,000)가 주어진다. 두 번째 줄부터 N개의 줄에 거쳐 각 물건의 무게 W(1 ≤ W ≤ 100,000)와 해당 물건의 가치 V(0 ≤ V ≤ 1,000) www.acmicpc.net 해설 가치 배열을 만든다. 각 무게별로 계속 돌아주면서 물건 (무게,가치)를 넣어주면서 최대값으로 경신을 해준다 0(배낭무게) 1 2 3 4 5 6 7 0.0 (더미) 0 0 0 0 0 0 0 6.13 0 0 0 0 0 13 13 4.8 0 0 0 8 8 13 13 3.6 0 0 6 8 8 13 14 5.12 0 0 6 8 12 13 14 123..

백준/DP 2021.04.26

[파이썬]-백준(BOJ)1753 _ 최단경로

문제 방향그래프가 주어지면 주어진 시작점에서 다른 모든 정점으로의 최단 경로를 구하는 프로그램을 작성하시오. 단, 모든 간선의 가중치는 10 이하의 자연수이다. 입력 첫째 줄에 정점의 개수 V와 간선의 개수 E가 주어진다. (1≤V≤20,000, 1≤E≤300,000) 모든 정점에는 1부터 V까지 번호가 매겨져 있다고 가정한다. 둘째 줄에는 시작 정점의 번호 K(1≤K≤V)가 주어진다. 셋째 줄부터 E개의 줄에 걸쳐 각 간선을 나타내는 세 개의 정수 (u, v, w)가 순서대로 주어진다. 이는 u에서 v로 가는 가중치 w인 간선이 존재한다는 뜻이다. u와 v는 서로 다르며 w는 10 이하의 자연수이다. 서로 다른 두 정점 사이에 여러 개의 간선이 존재할 수도 있음에 유의한다. 출력 첫째 줄부터 V개의 줄..

백준/최단경로 2021.04.26

DTO vs VO

DTO(Date Transfer Object) 레이어 간 데이터를 전달하는 객체 데이터 접근 메서드 외에 기능을 가지지 않음(setter, getter 로만 구성) + 정렬, 직렬화 등 데이터 표현을 위한 기능은 가질수 있음 데이터의 캡슐화를 통해 유연한 대응이 가능함 + 데이터 요청 수 감소 효과 VO 값 자체로 의미를 가지는 객체 변하지 않는 값을 가지는 객체 -> 값이 변하지 않음을 보장하여 코드의 안정성과 생산성을 높임 값이 같다면 동일한 객체 -> 각 개체를 비교하는 데 사용되는 ID가없음 -> 같은 객체인지 판단하기 위해 각 속성들의 값을 비교함 공통점 레이어 간 데이터를 전달할때 사용가능 (VO는 불변을 보장하기 때문에 데이터 전달 용도로 사용 가능) DTO VO 값이 변할수 있음 레이어와 ..

Back-end/Spring 2021.04.23