본문 바로가기

전체 글

(47)
프로그래머스 level1 키패드 누르기 문제 설명 입출력 예시 키패드를 좌표로 생각하여 문제를 접근했다. 키패드 1번은 [0,0] , 키패드 2번은 [0,1] ... 키패드 0번은 [3,1] 로 설정했다. 왼쪽 엄지손가락의 좌표인 left를 [3,0]으로 초기화하고 오른쪽 엄지손가락의 좌표인 right를 [3,2]로 초기화했다. 인자 numbers를 for문을 돌려서 i가 1,4,7일 경우 answer에 'L'을 추가하고 left 값을 바꾸고 i가 3,6,9일 경우 answer에 'R'을 추가하고 right 값을 바꿨다. i가 가운데 줄에 있는 번호 2,5,8,0일 경우 right의 좌표값과 left의 좌표값을 i의 좌표값과 비교하여 좌표값들의 차의 절댓값으로 거리를 계산했다. 전체 코드 def solution(numbers, hand): a..
백준 c++ 1697번 문제 설명 점에 대한 위치를 1차원 배열로 나타낸다. 수빈이의 위치를 N에 넣고 동생의 위치를 K에 넣는다. Q는 수빈이가 갈 수 있는 위치를 저장하는 큐다. 큐에서 값을 뺀 후 수빈이의 위치가 동생의 위치면 함수를 종료시킨다. 수빈이가 갈 수 있는 위치는 총 3가지인데 현재 거리로부터 +1, -1, *2 이다. 그래서 for문과 if문을 사용하여 경우의 수를 나누었다. 각각의 경우에 대한 예외처리를 해준 후 배열에 값을 1씩 더해준다. 전체 코드 #include #include #include using namespace std; int dist[100001]; int main() { ios::sync_with_stdio(0); cin.tie(0); int N, K; cin >> N >> K; queu..
[Java] 안드로이드 OpenCV를 활용한 roi 추출 OpenCV 셋팅은 webnautes.tistory.com/1268?category=704164 이 글을 참조하면 좋다. 액티비티 셋팅 레이아웃 셋팅 MainActivity 예제에 사용될 변수들을 설정한다. mOpenCvCameraView 셋팅 Imgproc.rectangle을 사용하여 만들고자 하는 roi 크기의 사각형을 만들고 해당 부분을 m_matRoi에 저장한다. 캡처 버튼을 클릭하면 해당 비트맵을 ByteArray로 변환 후 인탠트로 전송한다. RoiActivity 결과 MainActivity 전체 코드 package com.example.opencvcameraexample; import androidx.appcompat.app.AlertDialog; import androidx.appcompa..
[Java] 안드로이드 카메라 예제 촬영 버튼을 누르면 카메라 기본 앱이 실행되고 촬영한 사진을 핸드폰에 띄우는 예제다. AndroidManifest.xml activity_main.xml findViewById를 통해 각각의 Id 값을 초기화 시킨다. onCreate 함수에서 권한을 요청하고 btn_photo에 대한 ClickListener를 설정한다. 이제 dispatchTakePictureIntent 함수를 통해 카메라를 실행시킨다. getUriForFile에 authority 부분에는 "자신의 패키지명.fileprovider"로 설정해야 한다. 하지만 그 전에 카메라로 찍은 사진을 잠시 저장할 공간이 필요한데 그 역할을 해주는 것이 createImageFile 함수다. 카메라를 찍었으면 위에서 생성한 파일에 사진이 있을 것이다. 해..
백준 c++ 2178번 board는 미로의 크기를 나타내는 배열, vis는 해당 지점을 방문했는지 나타는 배열, length는 시작 지점에서부터 해당 지점까지의 거리를 나타낸다. n, m은 미로의 세로와 가로의 길이를 나타내고 한 줄씩 string 값을 입력받아 board에 저장한다. 첫번째 (0,0)을 큐에 넣고 vis[0][0]을 1로 바꾸고 이중for문을 사용하여 length 배열의 값들을 넣어준다. 마지막에 1을 더한 이유는 length에 저장되어 있는 값은 거리값이고 해당 문제에서 요구하는 것은 이동한 칸의 갯수이므로 +1을 해준다. 전체코드 #include #include #include using namespace std; #define X first #define Y second int board[101][101..
백준 c++ 1926번 board는 도화지의 크기를 나타내고 vis는 해당 위치를 방문했는지 나타내고 width에는 각각 그림의 크기를 저장해놓는다. 도화지의 세로 크기와 가로 크기 n, m을 입력 받고 도화지에 그림의 정보를 입력한다. 이중 for문을 통해 도화지에 그림이 있는지 확인하고 만약 해당 위치에 방문하지 않았고 도화지에 그림이 있다면 if문으로 들어가 방문했다고 표시를 한 후 큐에 해당 위치를 넣고 count 값을 1 더한다. 그러고 해당 위치로부터 상,하,좌,우 연결된 그림이 있는지 확인한다. 마지막으로 width 배열을 내림차순으로 정렬한 후 가장 큰 width[0]을 출력한다. 전체 코드 #include #include #include using namespace std; #define X first #def..
안드로이드에 OpenCV 설치하기 1. opencv.org/releases/ 해당 사이트 들어가서 원하는 버전의 OpenCV 다운로드 2. 다운받은 압축파일을 원하는 경로에 압축 해제 3. 안드로이드 스튜디오 실행 > 빈 프로젝트 생성 > build.gradle 파일 들어가서 defaultConfig 쪽에 applicationId"opencv.org" 추가 4. defaultConfig 밑에 dependencies를 보면 testImplementation 'junit:junit:4.+' 을 alt+enter 눌러서 정확한 버전으로 바꿔주고 상단에 있는 Sync Now를 누른다 5. File > New > Import Module > 아까 다운 받은 OpenCV 경로 > sdk > java 클릭 > ok 클릭 후 next 클릭 finish..