문제https://www.acmicpc.net/problem/1010재원이는 한 도시의 시장이 되었다. 이 도시에는 도시를 동쪽과 서쪽으로 나누는 큰 일직선 모양의 강이 흐르고 있다. 하지만 재원이는 다리가 없어서 시민들이 강을 건너는데 큰 불편을 겪고 있음을 알고 다리를 짓기로 결심하였다. 강 주변에서 다리를 짓기에 적합한 곳을 사이트라고 한다. 재원이는 강 주변을 면밀히 조사해 본 결과 강의 서쪽에는 N개의 사이트가 있고 동쪽에는 M개의 사이트가 있다는 것을 알았다. (N ≤ M)재원이는 서쪽의 사이트와 동쪽의 사이트를 다리로 연결하려고 한다. (이때 한 사이트에는 최대 한 개의 다리만 연결될 수 있다.) 재원이는 다리를 최대한 많이 지으려고 하기 때문에 서쪽의 사이트 개수만큼 (N개) 다리를 지으려..
문제https://www.acmicpc.net/problem/24480오늘도 서준이는 깊이 우선 탐색(DFS) 수업 조교를 하고 있다. 아빠가 수업한 내용을 학생들이 잘 이해했는지 문제를 통해서 확인해보자.N개의 정점과 M개의 간선으로 구성된 무방향 그래프(undirected graph)가 주어진다. 정점 번호는 1번부터 N번이고 모든 간선의 가중치는 1이다. 정점 R에서 시작하여 깊이 우선 탐색으로 노드를 방문할 경우 노드의 방문 순서를 출력하자.깊이 우선 탐색 의사 코드는 다음과 같다. 인접 정점은 내림차순으로 방문한다.dfs(V, E, R) { # V : 정점 집합, E : 간선 집합, R : 시작 정점 visited[R] 입력첫째 줄에 정점의 수 N (5 ≤ N ≤ 100,000), 간선..
문제https://school.programmers.co.kr/learn/courses/30/lessons/42578코니는 매일 다른 옷을 조합하여 입는것을 좋아합니다.예를 들어 코니가 가진 옷이 아래와 같고, 오늘 코니가 동그란 안경, 긴 코트, 파란색 티셔츠를 입었다면 다음날은 청바지를 추가로 입거나 동그란 안경 대신 검정 선글라스를 착용하거나 해야합니다.코니는 각 종류별로 최대 1가지 의상만 착용할 수 있습니다. 예를 들어 위 예시의 경우 동그란 안경과 검정 선글라스를 동시에 착용할 수는 없습니다.착용한 의상의 일부가 겹치더라도, 다른 의상이 겹치지 않거나, 혹은 의상을 추가로 더 착용한 경우에는 서로 다른 방법으로 옷을 착용한 것으로 계산합니다.코니는 하루에 최소 한 개의 의상은 입습니다.코니가 ..
문제https://school.programmers.co.kr/learn/courses/30/lessons/42747H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다. 어떤 과학자가 발표한 논문 n편 중, h번 이상 인용된 논문이 h편 이상이고 나머지 논문이 h번 이하 인용되었다면 h의 최댓값이 이 과학자의 H-Index입니다. 어떤 과학자가 발표한 논문의 인용 횟수를 담은 배열 citations가 매개변수로 주어질 때, 이 과학자의 H-Index를 return 하도록 solution 함수를 작성해주세요. 제한사항과학자가 발표한 논문의 수는 1편 이상 1,000편 ..
Vercel로 프로젝트를 배포한 이후에 `Settings > Functions`에서 Funtion Region(함수 실행 지역)을 설정할 수 있다. These are the regions on Vercel's network that your Vercel Functions will execute in.사용자와 가까운 위치에서 함수를 실행할 수 있도록 설정하는 것인데,이때 말하는 "함수"가 정확히 무엇을 의미하는지 궁금해져서 직접 찾아봤다. 단순한 설정처럼 보이지만, 사용자 경험에 직접적인 영향을 미치는 Function Region에 대해 알아보자. Vercel Functions란?Vercel Functions는 서버를 따로 구축하지 않고도 서버 측 로직을 실행할 수 있게 해주는 서버리스(Serverless..
문제https://school.programmers.co.kr/learn/courses/30/lessons/129492차원 행렬 arr1과 arr2를 입력받아, arr1에 arr2를 곱한 결과를 반환하는 함수, solution을 완성해주세요. 제한사항행렬 arr1, arr2의 행과 열의 길이는 2 이상 100 이하입니다.행렬 arr1, arr2의 원소는 -10 이상 20 이하인 자연수입니다.곱할 수 있는 배열만 주어집니다. 입출력 예 나의 풀이1 (실패)def solution(arr1, arr2): arr = [[0] * len(arr1[0]) for _ in range(len(arr1))] for i in range(len(arr1)): for j in range(le..
문제https://www.acmicpc.net/problem/24060오늘도 서준이는 병합 정렬 수업 조교를 하고 있다. 아빠가 수업한 내용을 학생들이 잘 이해했는지 문제를 통해서 확인해보자.N개의 서로 다른 양의 정수가 저장된 배열 A가 있다. 병합 정렬로 배열 A를 오름차순 정렬할 경우 배열 A에 K 번째 저장되는 수를 구해서 우리 서준이를 도와주자.크기가 N인 배열에 대한 병합 정렬 의사 코드는 다음과 같다.merge_sort(A[p..r]) { # A[p..r]을 오름차순 정렬한다. if (p 입력첫째 줄에 배열 A의 크기 N(5 ≤ N ≤ 500,000), 저장 횟수 K(1 ≤ K ≤ 10^8)가 주어진다.다음 줄에 서로 다른 배열 A의 원소 A1, A2, ..., AN이 주어진다. (1..
프론트엔드 성능을 향상시키 위해서 가장 먼저 고려해야 할 것은 코드 스플리팅이나 서버 컴포넌트 같은 어려운 기술이 아니라 CDN이다. CDN은 기본적이면서도 가장 강력한 성능 개선 도구다.이 글에서는 CDN의 개념, 동작 방식, 그리고 어떤 장점이 있는지를 간단하게 살펴본다. CDN이란?CDN은 Content Delivery Network, 즉 콘텐츠 전송 네트워크를 의미한다. 전 세계에 분산된 서버를 통해 지연(latency)을 줄이고,웹 콘텐츠(예: JS, CSS, 이미지, 폰트 등)를 사용자에게 더 빠르게 전달하는 것이 핵심 목적이다. CDN의 핵심 전략분산 서버CDN 제공 업체는 전 세계 여러 지역에 엣지 서버(Edge Server)를 보유하고 있다.이 서버들은 원본 서버로부터 정적 리소스를 전달..
문제https://www.acmicpc.net/problem/23968오늘도 서준이는 버블 정렬 수업 조교를 하고 있다. 아빠가 수업한 내용을 학생들이 잘 이해했는지 문제를 통해서 확인해보자.N개의 서로 다른 양의 정수가 저장된 배열 A가 있다. 버블 정렬로 배열 A를 오름차순 정렬할 경우 K 번째 교환되는 수를 구해서 우리 서준이를 도와주자.크기가 N인 배열에 대한 버블 정렬 의사 코드는 다음과 같다.bubble_sort(A[1..N]) { # A[1..N]을 오름차순 정렬한다. for last A[i + 1]) then A[i] A[i + 1] # 원소 교환} 입력첫째 줄에 배열 A의 크기 N(5 ≤ N ≤ 10,000), 교환 횟수 K(1 ≤ K ≤ N2)가 주어진다.다음 줄에 서로 다른..