본문 바로가기

전체 글159

[Baekjoon] 백준 알고리즘: 1021 - 회전하는 큐 문제 https://www.acmicpc.net/problem/1021 1021번: 회전하는 큐 첫째 줄에 큐의 크기 N과 뽑아내려고 하는 수의 개수 M이 주어진다. N은 50보다 작거나 같은 자연수이고, M은 N보다 작거나 같은 자연수이다. 둘째 줄에는 지민이가 뽑아내려고 하는 수의 위치가 www.acmicpc.net 내가 생각했던 풀이과정 1) 데크를 사용한다. 데크란 양방향 큐가 있는데 바로 데크(deque) 자료구조이다. 데크는 앞, 뒤 양쪽 방향에서 엘리먼트(element)를 추가하거나 제거할 수 있다. 2) deque.rotate(iteration): iteration 횟수만큼 deque의 맨 뒷 값을 맨 앞으로 이동시킨다. deque.rotate(-iteration): iteration 횟수.. 2021. 5. 18.
[Baekjoon] 백준 알고리즘: 1010 - 다리놓기 문제 https://www.acmicpc.net/problem/1010 1010번: 다리 놓기 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트케이스에 대해 강의 서쪽과 동쪽에 있는 사이트의 개수 정수 N, M (0 < N ≤ M < 30)이 주어진다. www.acmicpc.net 내가 생각했던 풀이과정 1) 순서가 없는 조합 문제이다. 조합이란 집합에서 서로 다른 n개의 원소 중에서 순서와 상관없이 r개를 선택하는 것이다. 순서가 없다고 생각한 이유는 어떤 다리를 놓아도, 순서에는 영향을 미치지 않기 때문이다. 2) m이 n보다 크기 때문에 최대 연결할 수 있는 다리의 갯수는 n개이다. m개의 지역에 n개의 다리를 놓을 수 있는 경우를 찾는 것이기 때문에 mCn 문제.. 2021. 5. 17.
[Baekjoon] 백준 알고리즘: 1920번 - 수 찾기 문제 www.acmicpc.net/problem/1920 1920번: 수 찾기 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들 www.acmicpc.net 내가 생각했던 풀이과정 1) 이진탐색을 사용하려면 정렬되야 하기 때문에, 처음 정렬을 한다 2) 시작을 start, 끝을 end로 index를 설정해주고, 찾아야할 숫자는 in 함수를 통해 반복문을 돈다. 3) 시작이 끝보다 작을 때까지 반복하며 이진 탐색을 위해 중간지점을 찾는다 중간지점이 타겟이라면 1을 return하고 중간지점의 값보다 타겟이 작을 경우.. 2021. 5. 6.
[Swagger] Swagger Hub를 이용한 Swagger 사용하기 Swagger의 필요성 과거 프로젝트에서는 API를 작성하면 구글 스프레드시트를 이용하여 직접 수기로 입력하였습니다. 수기로 입력하다보니, 대소문자 구분과 오타 같은 부분은 확인하기 어렵다보니, 프론트엔드 개발자 분들에게 피해를 끼치는 일이 발생하였고 이를 통해 Swagger이라는 툴을 알게 되었습니다. Swagger 툴은 백엔드 개발자가 API를 작성하면 프론트엔드 개발자가 어떤 데이터를 주고 받아야하는지 알기 위해 기록해두는 문서가 필요합니다. 이 때 Swagger는 백엔드 개발자와 프론트엔드 개발자와 사이에서 어떤 방식으로 데이터를 주고 받고 데이터를 요청했을 때, 받아야할 response는 무엇인지에 대한 명세서인 API를 관리할 수 있는 도구입니다. Swagger Hub https://swagg.. 2021. 5. 4.