본문 바로가기

IT11

백준 온라인 저지 - 19598번 최소 회의실 개수 몇 번 시도해 보니 골드 5가 적당히 머리 쓰기 좋은 것 같아서 이번에도 골드 5를 선택 선택된 문제는 골드5 최소 회의실 개수 [해석] 첫째줄엔 회의의 개수가 그다음 줄부터는 회의의 시작시간과 끝나는 시간이 주어진다. 3 0 40 15 30 5 10 위의 시간이 주어진다면, (0, 40) 회의실 한 개와 (5, 10) (15, 30) 회의실 한 개인 총 2개가 필요하다. 각각 회의실을 따로 써도 되지만, 최소 회의실을 구하는 문제이기 때문에 2가 정답이 된다 이리저리 생각을 해보다가 그림으로 그려보면 좀 더 이해가 쉬울 것 같아서 그림으로 표현해 본다 (1, 4) (3,7) (6,10) (6, 8) (7,12) 위와 같은 회의시간을 시간표 같이 표현한다면 다음과 같이 될 것 같다. 겹이전회의의 종료와 .. 2023. 3. 10.
백준 온라인 저지 - 2170번 선 긋기 지난번에 실버도 쉽게 해결이 되어 이번에는 골드5에서 선택해 보았다. 선택된 문제는 골드5 선 긋기 [해석] 선의 시작과 끝의 좌표가 주어진다. 겹쳐서도 그릴 수가 있다. (1,3) (2,5) 좌표가 제공된다면 1-5까지 선이 그어지므로 선의 길이는 4가 된다. 떨어져서도 그릴 수가 있다. (1,3) (2,5) (7,10) 좌표가 제공된다면 1-5, 7-10 두 선이 되고 선의 총길이는 4 + 3의 7이 된다. 겹치는 선을 파악하기 위해서는 제공되는 모든 데이터를 정렬하여 루프를 돌며 순차적으로 좌표를 확인하는데, 선의 끝좌표가 다음데이터의 시작좌표보다 뒤에 있다면 선이 겹친걸로 판단하고, 다음데이터의 끝좌표와 기존 끝좌표를 비교하여 큰 값을 선의 끝좌표로 업데이트한다. ex> (1,3) (2,5)에서 .. 2023. 2. 24.
Depth-First Search (DFS) - 깊이 우선 탐색 Problem: Given a graph represented as an adjacency list and a starting vertex, implement the depth-first search algorithm to traverse the graph and return the order of visited nodes. 인접 목록과 시작 정점으로 표시된 그래프가 주어지면 깊이 우선 검색 알고리즘을 구현하여 그래프를 순회하고 방문한 노드의 순서를 반환. Example Input: graph = {0: [1, 2], 1: [2], 2: [0, 3], 3: [3]} start_vertex = 2 Example Output: [2, 0, 1, 3] Explanation: Depth-First Search .. 2023. 2. 23.
Dijkstra Algorithm - 데이크스트라 알고리즘 Problem: Implement Dijkstra's algorithm to find the shortest path between two nodes in a weighted graph. Dijkstra의 알고리즘을 구현하여 가중치 그래프에서 두 노드 사이의 최단 경로를 찾는다. Example Input: graph = { 'A': {'B': 2, 'C': 5}, 'B': {'A': 2, 'C': 2, 'D': 1}, 'C': {'A': 5, 'B': 2, 'D': 6}, 'D': {'B': 1, 'C': 6} } start_node = 'A' end_node = 'D' Example Output: Shortest path from A to D: ['A', 'B', 'D'] Shortest distanc.. 2023. 2. 20.
Merge Sort - 병합정렬 Problem: Implement the Merge Sort algorithm to sort a list of integers in ascending order. 병합 정렬 알고리즘을 구현하여 정수 목록을 오름차순으로 정렬. Example Input: lst = [10, 5, 7, 3, 1, 8, 2, 4, 6, 9] Example Output: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] Explanation: Merge sort is a divide-and-conquer algorithm that works by repeatedly dividing the input list into halves until each half contains only one element. It then m.. 2023. 2. 16.
Binary Search - 이진탐색/이진검색 Problem: Given a sorted list of integers and a target integer, find the index of the target integer in the list using binary search. If the target integer is not in the list, return -1. 정렬된 정수 목록과 대상 정수가 주어지면 이진 검색을 사용하여 목록에서 대상 정수의 인덱스를 찾는다. 대상 정수가 목록에 없으면 -1을 반환. Example Input: lst = [1, 3, 5, 7, 9, 11] target = 7 Example Output: 3 Explanation: Binary search works by repeatedly dividing the li.. 2023. 2. 16.
[Python] OpenAPI 이용하여 티스토리 글 업로드하기 - 2 [이전글] [Python] OpenAPI 이용하여 티스토리 글 업로드하기 - 1 티스토리 블로그가 있고 프로그래밍 방식으로 텍스트 게시물을 업로드하려는 경우 티스토리의 OpenAPI 쓰기 기능을 사용할 수 있다. 어떤 방식으로, 어떤 주제로 글을 업로드할지는 주제가 다양 jobsangin.tistory.com 이전 글에서 Access Token까지 발급받았으면, 다음의 파이썬 코드를 통해 티스토리에 글 업로드를 한다. import requests import json blog_name = 'jobsangin' category_id = 000000 title = '자동업로드 테스트' content = '본문 내용' tag = 'tag' url = 'https://www.tistory.com/apis/pos.. 2023. 2. 15.
[Python] OpenAPI 이용하여 티스토리 글 업로드하기 - 1 티스토리 블로그가 있고 프로그래밍 방식으로 텍스트 게시물을 업로드하려는 경우 티스토리의 OpenAPI 쓰기 기능을 사용할 수 있다. 어떤 방식으로, 어떤 주제로 글을 업로드할지는 주제가 다양하기 때문에 여기서는 OpenAPI로 업로드 하는 부분만 다룬다. OAuth2 프로토콜에서는 다양한 클라이언트 환경에 적합하도록 권한 부여 방식이 존재하는데 티스토리에서는 Authorization Code Grant 방식을 사용한다. 간단히 말해서 티스토리 서버에서 Authentication Code를 발급받고 Authentication Code로 access token을 발급받는다. 그 이후 글을 쓸 때는 발급받은 access token을 이용하여 글을 작성하도록 한다. 글이 길어질 것 같아 access token발.. 2023. 2. 15.
백준 온라인 저지 - 2839번 설탕 배달 머리 식히려고 브론즈만 하다 보니 알고리즘 없이 코딩이나 산수문제 만 있는 것 같아서 실버에 도전해 보았다. 선택된 문제는 실버 4 설탕 배달 내가 보기엔 실버 4도 그냥 산수 문제 같아 보인다. 우선 선택을 했으니 문제를 천천히 읽어본다. [해석] 주어진 숫자의 설탕무게를 3킬로 봉지와 5킬로 봉지에 나눠 담는데, 이때 발생하는 봉지의 최소개수를 구하는 것이다. 최소의 개수를 구하는 것이므로, 5킬로 봉지로 최대한 담고, 나머지를 3킬로 봉지로 담는 방법을 사용하는 게 좋아 보인다. 나머지가 3킬로로 안 떨어진다면, 5킬로 봉지수를 하나 줄이고 나머지가 3킬로로 나눠 떨어지는지 확인하여 나눠떨어지는 지점이 최소개수라고 판단된다. 더보기 import sys n = int(sys.stdin.readline.. 2023. 2. 13.