Uknow's Lab.
article thumbnail
노션 API를 사용해보자! (feat. 포스트맨)
기타 2022. 6. 27. 00:49

노션(Notion). 에버노트의 기기 수 제한 때문에 다른 노트 앱을 찾던 중 알게된 앱이였습니다. 처음엔 수업 내용을 필기 및 정리하는 용도로만 사용하였으나, 노션의 사용분야는 그야말로 대단했는데요. 현재는 필기 및 정리는 물론, 포트폴리오 작성, 프로젝트 관리(회사 및 학교 등등), 일정 관리, 맛집 리스트까지 여러 방면으로 활용하고 있지요.😀 그러던 중, 연구실 앱을 만들어 보자는 이야기가 나와 애플리케이션 개발에 착수하였는데, 연구실 일정 관리를 노션으로 하고 있어서, 노션의 일정을 가져올 수 있을까...? 하는 생각에 노션 API를 찾아봤는데, 역시나 있었습니다. 노션 API 기본 세팅하기 https://developers.notion.com/ Notion API developers.notion..

article thumbnail
[백준 11723번] [Kotlin] 집합
코딩테스트/Kotlin 2022. 6. 25. 18:46

https://www.acmicpc.net/problem/11723 11723번: 집합 첫째 줄에 수행해야 하는 연산의 수 M (1 ≤ M ≤ 3,000,000)이 주어진다. 둘째 줄부터 M개의 줄에 수행해야 하는 연산이 한 줄에 하나씩 주어진다. www.acmicpc.net 난이도 : 실버 5 태그 : 구현, 비트마스킹 문제풀이 처음 문제를 봤을땐, 아 집합문제니 HashSet을 사용해 풀면 되겠구나! 라는 생각이 들어 별 문제 없이 코딩을 시작했습니다. import java.io.BufferedReader import java.io.InputStreamReader fun main() { val br = BufferedReader(InputStreamReader(System.`in`)) val n = ..

article thumbnail
[백준 1931번] [Kotlin] 회의실 배정
코딩테스트/Kotlin 2022. 6. 25. 16:56

https://www.acmicpc.net/problem/1931 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 난이도 : 실버1 태그 : 그리디, 정렬 설명 가장 많은 회의를 배정할 수 있도록 하는 문제입니다. 처음엔 회의 시간이 가장 짧은 것 부터 그리디 알고리즘을 이용하여 풀이하였는데, 생각해보니 (1,10) (9,11) (10, 20)의 경우 (1,10) (10,20)을 냅두고 (9,11)을 선택하게 되더군요. 그래서 끝나는 시간이 가장 짧은 순으로 그리디 알고리즘을 적용하였습니다. 소스코드 인풋값 저장 val n = readLine()!!.toInt() val arr = Array(n) { Array(2) { 0 ..

article thumbnail
[백준 7569번] [Kotlin] 토마토
코딩테스트/Kotlin 2022. 6. 24. 13:53

https://www.acmicpc.net/problem/7569 7569번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N과 쌓아올려지는 상자의 수를 나타내는 H가 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M ≤ 100, 2 ≤ N ≤ 100, www.acmicpc.net 난이도 : 골드5 태그 : 그래프탐색, 너비우선탐색, 그래프이론 설명 이전의 포스팅했던 백준 7576번 토마토는 한 층인 평면(x, y축)으로만 이루어졌던과 달리, 7569번 토마토는 복수의 층으로 입체(x,y,z)로 이루어져 있는게 차이점입니다. 이전 포스팅의 코드를 베이스로 약간 변형을 주어 3차원 BFS로 풀이할 수 있으며, 이전 포스팅의 내용이 궁금하신 분은 아래 링..

article thumbnail
[백준 9095번] [Kotlin] 1, 2, 3 더하기
코딩테스트/Kotlin 2022. 6. 23. 01:09

https://www.acmicpc.net/problem/9095 9095번: 1, 2, 3 더하기 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다. www.acmicpc.net 난이도 : 실버 3 태그 : 다이나믹 프로그래밍 설명 정수 4를 1+1+1+1 1+1+2 1+2+1 2+1+1 2+2 1+3 3+1 으로 나타내는... 프로그램을 짜고 있었는데 뭔가 이상했습니다. 이 문제, 뭔가 실버3 같지가 않았습니다. 뭔가 쌔한 느낌을 받은 저는, 어... 이거 생각해보니 굳이 1, 2, 3으로 나타낼 필요까진 없네? 라는 것을 뒤늦게야 깨달았고, 아 이거 점화식이구나! 라는 생각이 마침내 떠올랐습니다. 그 즉시 각 항들을 구해보며 규칙성을 찾기 시작했습니다. a[1] = ..

article thumbnail
[백준 2667번] [Kotlin] 단지번호붙이기
코딩테스트/Kotlin 2022. 6. 23. 00:46

https://www.acmicpc.net/problem/2667 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net 난이도 : 실버 1 태그 : 그래프 이론, 그래프 탐색, 너비 우선 탐색, 깊이 우선 탐색 설명 좌표 상 각 블록(단지)의 개수가 몇개인지 판단하는 전형적인 그래프 탐색 (DFS / BFS) 문제입니다. 모든 점에 대해 DFS / BFS를 진행하며, DFS / BFS가 진행된 횟수를 카운트하면 됩니다. DFS 및 BFS 중 어느것을 사용해 풀이해도 무방하나, 이전 코테 포스팅에서 DFS는 많이 풀이..

article thumbnail
[백준 7662번] [Kotlin] 이중 우선순위 큐
코딩테스트/Kotlin 2022. 6. 23. 00:25

https://www.acmicpc.net/problem/7662 7662번: 이중 우선순위 큐 입력 데이터는 표준입력을 사용한다. 입력은 T개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에는 입력 데이터의 수를 나타내는 정수 T가 주어진다. 각 테스트 데이터의 첫째 줄에는 Q에 적 www.acmicpc.net 난이도 : 골드 4 태그 : 자료구조, 트리를 사용한 집합과 맵, 우선순위 큐 설명 우선순위가 최대 혹은 최소인 원소만 뺏던 기존 우선순위 큐와 달리, 최대와 최소 모두 뺄 수 있는 우선순위 큐 입니다. LinkedList도 써보고, 직접 배열로 우선순위 큐도 구현해 봤는데... 시간초과에서 헤어나오질 못해 검색해 봤더니 TreeMap이라는 자료구조를 발견하게 되었습니다. TreeMap은 키값..

article thumbnail
[백준 7576번] [Kotlin] 토마토
코딩테스트/Kotlin 2022. 6. 22. 15:45

https://www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net 난이도 : 골드5 태그 : 그래프 이론, 그래프 탐색, 너비 우선 탐색 설명 주변(상하좌우, 대각선 X) 토마토를 익힌다 하였으니, BFS인걸 알 수 있다. 처음엔 초기 토마토 위치로 각각 BFS를 한 사이클씩만 돌리려 하였으나.... 그럴수가 있나..? 하는 생각에 접근법을 달리 하였습니다. 한 사이클이 돌 때마다, x, y값이 -1인 값을 큐에 넣어 확인하여 한 사이클이 돌 때..

article thumbnail
[안드로이드/코틀린] 리사이클러뷰(RecyclerView) 사용법 및 예제
프레임워크/Android 2022. 6. 20. 22:06

리사이클러뷰(RecyclerView) 리사이클러뷰는 안드로이드에서 리스트를 만들기 위해 사용되는 뷰 입니다. 리스트를 만들기 위해 사용된다는 점에서 리스트뷰(ListView)와 비슷하지만, 뷰를 재활용(Recycler)한다는 점에서 리스트뷰보다 더 개선된 형태입니다. 하지만, 뷰를 재활용 하기 때문에 각 뷰의 내용을 담아둘 뷰 홀더(View Holder)가 필요합니다. 아이템 레이아웃 만들기 item_recycler_view.xml 아이템의 각 행을 담을 레이아웃을 만듭니다. 데이터 클래스 만들기 data class BoardItem(val time: String, val title: String, val name: String) 리스트의 각 아이템의 내용이 담길 데이터 클래스를 하나 만듭니다. 저는 예..

article thumbnail
[프로그래머스][Python] 삼각 달팽이
코딩테스트/Python 2022. 6. 20. 21:22

https://programmers.co.kr/learn/courses/30/lessons/68645 코딩테스트 연습 - 삼각 달팽이 5 [1,2,12,3,13,11,4,14,15,10,5,6,7,8,9] 6 [1,2,15,3,16,14,4,17,21,13,5,18,19,20,12,6,7,8,9,10,11] programmers.co.kr 설명 코딩을 막 배울때 한번쯤 접해봤을 달팽이 찍기의 삼각형 버전 입니다. 소스코드 def solution(n): arr = [[0] * n for i in range(n)] maxnum = 0 for i in range(1,n+1): maxnum = maxnum + i x = y = 0 num = 1 switch = 0 while(num n-1 or arr[x][y]..