일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 다이나믹 프로그래밍
- 코딩테스트
- 풀이
- 맵
- 다익스트라
- 코드트리 조별과제
- 코드트리
- 파이어스토어
- 브루트포스
- 문자열
- 백트래킹
- 그래프 탐색
- dfs
- 코틀린
- map
- dp
- 안드로이드
- 코드트리조별과제
- 그래프
- c++풀이
- BFS
- 그래프 이론
- 시뮬레이션
- 멀티맵
- 분할정복
- 파이어베이스
- c++
- 백준
- 자료 구조
- 에러
- Today
- Total
목록전체 글 (81)
Kangho_Story
알고리즘 분류이분탐색매개 변수 탐색문제 설명상근이는 나무 M미터가 필요하다. 근처에 나무를 구입할 곳이 모두 망해버렸기 때문에, 정부에 벌목 허가를 요청했다. 정부는 상근이네 집 근처의 나무 한 줄에 대한 벌목 허가를 내주었고, 상근이는 새로 구입한 목재절단기를 이용해서 나무를 구할것이다.목재절단기는 다음과 같이 동작한다. 먼저, 상근이는 절단기에 높이 H를 지정해야 한다. 높이를 지정하면 톱날이 땅으로부터 H미터 위로 올라간다. 그 다음, 한 줄에 연속해있는 나무를 모두 절단해버린다. 따라서, 높이가 H보다 큰 나무는 H 위의 부분이 잘릴 것이고, 낮은 나무는 잘리지 않을 것이다. 예를 들어, 한 줄에 연속해있는 나무의 높이가 20, 15, 10, 17이라고 하자. 상근이가 높이를 15로 지정했다면, ..
알고리즘 분류그래프 이론그래프 탐색BFS문제 설명지도가 주어지면 모든 지점에 대해서 목표지점까지의 거리를 구하여라.문제를 쉽게 만들기 위해 오직 가로와 세로로만 움직일 수 있다고 하자.입력 설명지도의 크기 n과 m이 주어진다. n은 세로의 크기, m은 가로의 크기다.(2 ≤ n ≤ 1000, 2 ≤ m ≤ 1000)다음 n개의 줄에 m개의 숫자가 주어진다. 0은 갈 수 없는 땅이고 1은 갈 수 있는 땅, 2는 목표지점이다. 입력에서 2는 단 한개이다.출력 설명각 지점에서 목표지점까지의 거리를 출력한다. 원래 갈 수 없는 땅인 위치는 0을 출력하고, 원래 갈 수 있는 땅인 부분 중에서 도달할 수 없는 위치는 -1을 출력한다.예제 입력15 152 1 1 1 1 1 1 1 1 1 1 1 1 1 11 1 1 1..
알고리즘 분류그래프 이론그래프 탐색BFS문제 설명수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 걷는다면 1초 후에 X-1 또는 X+1로 이동하게 된다. 순간이동을 하는 경우에는 1초 후에 2*X의 위치로 이동하게 된다.수빈이와 동생의 위치가 주어졌을 때, 수빈이가 동생을 찾을 수 있는 가장 빠른 시간이 몇 초 후인지 구하는 프로그램을 작성하시오.입력 설명첫 번째 줄에 수빈이가 있는 위치 N과 동생이 있는 위치 K가 주어진다. N과 K는 정수이다.출력 설명수빈이가 동생을 찾는 가장 빠른 시간을 출력한다.예제 입력5 17예제 출력..
알고리즘 분류정렬값 / 좌표 압축문제 설명수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다.Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표 Xj의 개수와 같아야 한다.X1, X2, ..., XN에 좌표 압축을 적용한 결과 X'1, X'2, ..., X'N를 출력해보자.입력 설명첫째 줄에 N이 주어진다.둘째 줄에는 공백 한 칸으로 구분된 X1, X2, ..., XN이 주어진다.출력 설명첫째 줄에 X'1, X'2, ..., X'N을 공백 한 칸으로 구분해서 출력한다.예제 입력52 4 -10 4 -9 61000 999 1000 999 1000 999예제 출력2 3 0 3 1 1 0 1 0 1 0아이디어n * 3 벡터를 생성해서..
알고리즘 분류그리디 알고리즘정렬문제 설명한 개의 회의실이 있는데 이를 사용하고자 하는 N개의 회의에 대하여 회의실 사용표를 만들려고 한다. 각 회의 I에 대해 시작시간과 끝나는 시간이 주어져 있고, 각 회의가 겹치지 않게 하면서 회의실을 사용할 수 있는 회의의 최대 개수를 찾아보자. 단, 회의는 한번 시작하면 중간에 중단될 수 없으며 한 회의가 끝나는 것과 동시에 다음 회의가 시작될 수 있다. 회의의 시작시간과 끝나는 시간이 같을 수도 있다. 이 경우에는 시작하자마자 끝나는 것으로 생각하면 된다.입력 설명첫째 줄에 회의의 수 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N+1 줄까지 각 회의의 정보가 주어지는데 이것은 공백을 사이에 두고 회의의 시작시간과 끝나는 시간이 주어진다. 시작 시간..
알고리즘 분류DP문제 설명2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오.아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다.입력 설명첫째 줄에 n이 주어진다. (1 ≤ n ≤ 1,000)출력 설명첫째 줄에 2×n 크기의 직사각형을 채우는 방법의 수를 10,007로 나눈 나머지를 출력한다.예제 입력2 9예제 출력2 55아이디어n이 1일 때 1가지n이 2일 때 2가지n이 3일 때 3가지n이 4일 때 5가지...n이 9일 때 55가지 이것을 보고 피보나치수열임을 알았다.알고리즘DP를 사용해서 기존에 이미 계산했던 값은 벡터에 저장해두어 중복 계산을 방지하며 재귀로 푼다.또한 10007로 나눈 나머지를 저장하고 리턴하는 것도 잊지 말자.코드#inc..
알고리즘 분류그래프 이론그래프 탐색BFS문제 설명N×M크기의 배열로 표현되는 미로가 있다.101111101010101011111011미로에서 1은 이동할 수 있는 칸을 나타내고, 0은 이동할 수 없는 칸을 나타낸다. 이러한 미로가 주어졌을 때, (1, 1)에서 출발하여 (N, M)의 위치로 이동할 때 지나야 하는 최소의 칸 수를 구하는 프로그램을 작성하시오. 한 칸에서 다른 칸으로 이동할 때, 서로 인접한 칸으로만 이동할 수 있다.위의 예에서는 15칸을 지나야 (N, M)의 위치로 이동할 수 있다. 칸을 셀 때에는 시작 위치와 도착 위치도 포함한다.입력 설명첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으..
알고리즘 분류그리디 알고리즘정렬문제 설명인하은행에는 ATM이 1대밖에 없다. 지금 이 ATM앞에 N명의 사람들이 줄을 서있다. 사람은 1번부터 N번까지 번호가 매겨져 있으며, i번 사람이 돈을 인출하는데 걸리는 시간은 Pi분이다.사람들이 줄을 서는 순서에 따라서, 돈을 인출하는데 필요한 시간의 합이 달라지게 된다. 예를 들어, 총 5명이 있고, P1 = 3, P2 = 1, P3 = 4, P4 = 3, P5 = 2 인 경우를 생각해보자. [1, 2, 3, 4, 5] 순서로 줄을 선다면, 1번 사람은 3분만에 돈을 뽑을 수 있다. 2번 사람은 1번 사람이 돈을 뽑을 때 까지 기다려야 하기 때문에, 3+1 = 4분이 걸리게 된다. 3번 사람은 1번, 2번 사람이 돈을 뽑을 때까지 기다려야 하기 때문에, 총 3..
알고리즘 분류그래프 이론그래프 탐색BFS문제 설명철수의 토마토 농장에서는 토마토를 보관하는 큰 창고를 가지고 있다. 토마토는 아래의 그림과 같이 격자 모양 상자의 칸에 하나씩 넣어서 창고에 보관한다.창고에 보관되는 토마토들 중에는 잘 익은 것도 있지만, 아직 익지 않은 토마토들도 있을 수 있다. 보관 후 하루가 지나면, 익은 토마토들의 인접한 곳에 있는 익지 않은 토마토들은 익은 토마토의 영향을 받아 익게 된다. 하나의 토마토의 인접한 곳은 왼쪽, 오른쪽, 앞, 뒤 네 방향에 있는 토마토를 의미한다. 대각선 방향에 있는 토마토들에게는 영향을 주지 못하며, 토마토가 혼자 저절로 익는 경우는 없다고 가정한다. 철수는 창고에 보관된 토마토들이 며칠이 지나면 다 익게 되는지, 그 최소 일수를 알고 싶어 한다.토..
에러Response{ "errorMessage": "Unable to import module 'lambda_function': Error importing numpy: you should not try to import numpy from\n its source directory; please exit the numpy source tree, and relaunch\n your python interpreter from there.", "errorType": "Runtime.ImportModuleError", "requestId": "eec9d88d-c572-4e13-8ee1-311088c771cc", "stackTrace": []} Function LogsSTART R..
private var MY_SECRET_KEY = R.string.MY_API MY_API_KEY keys.xml에 위와 같은 방식으로 API Key를 저장한 후 MY_SECRET_KEY에서 불러와서 사용함으로써 API 노출을 방지하려고 했다. 그런데 java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.Resources android.content.Context.getResources()' on a null object reference이라는 에러를 만났다.R.string.MY_API로 값을 불러오는 것은 해당 string에 부여된 id를 불러오는 것이므로 int 값을 가진다는 것을 알게 되었다..
파이어베이스 파이어스토어에서 커스텀 객체 타입으로 데이터를 가져오려는데 If parameterised constructors are defined explicitly in a program the Java compiler doesn't insert the implicit default constructor. 에러가 발생했다. 해결법은 간단하다 데이터 클래스에 모두 초기값을 정해주면 된다. 이렇게 정해주면 오류 없이 잘 실행된다.끝!
코틀린으로 파이어베이스에 데이터를 넣고 빼는 작업을 수월하게 하기 위해서 객체를 생성하려고 한다.내가 생성한 DB 구조의 틀은 이러하다. 한눈에 보기에도 꽤나 복잡한 형식임을 알 수 있다. 우선 유저에는 UID, address, firstLogin, name, crop, inventory, chat 등의 필드가 존재한다.UID나 firstLogin 처럼 단순한 String 또는 Boolean이면var UID : String?var firstLogin : Boolean = false이런 식으로 바로 정의가 가능하다. 하지만 inventory나 crop 같은 복잡한 형식도 존재한다.inventory는 size2의 배열이다. 각 배열에는 key가 String이고 velue가 Int인 HashMap이 여러 개 ..
파이어베이스의 Authentication을 이용한 이메일&비밀번호 로그인을 구현해 보자.https://firebase.google.com/docs/auth/android/password-auth?hl=ko&_gl=1*vis7ur*_up*MQ..*_ga*MTM3NzQzMDYxMi4xNzE0NTc4OTAy*_ga_CW55HF8NVT*MTcxNDU3ODkwMS4xLjAuMTcxNDU3ODkwMS4wLjAuMA.. Android에서 비밀번호 기반 계정으로 Firebase에 인증 | Firebase AuthenticationGoogle I/O 2023에서 Firebase의 주요 소식을 확인하세요. 자세히 알아보기 의견 보내기 Android에서 비밀번호 기반 계정으로 Firebase에 인증 컬렉션을 사용해 정리..