전체 글
-
문제풀이코딩테스트 2023. 5. 14. 17:42
n*m인 배열 map에서 위치 3개를 뽑는다. 그 후 map 값이 1인 위치와 뽑은 위치 3개의 거리 차이의 합 중 가장 작은 값 구하기(위치 3개는 중복 가능) import java.util.*; // don't change 'Program' class name and without 'public' accessor. class Program { static boolean[][] visited; static int[][] loc; static int[][] map; static ArrayList emp = new ArrayList(); static int answer = Integer.MAX_VALUE; public static void main(String[] args) { Scanner scanner..
-
2차원 배열 인덱스 조합 구하기알고리즘 2023. 5. 14. 17:41
2차원 배열의 위치들 중 k 개의 위치를 뽑고 싶을 때 사용하는 공식 예를들어 2*3 크기의 배열이 있다고 하면 0 1 2 3 4 5 처럼 각 위치에 인덱스를 부여하면 2차원 배열을 1차원 배열처럼 생각해서 조합을 구할 수 있다. import java.util.Scanner; public class TwoDim_comb { static int[][] result; static boolean[][] visited; public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); //배열의 행 int m = sc.nextInt(); //배열의 열 int k = sc.nextInt(); //k개의..
-
백준 17298번 오큰수(자바) - 스택코딩테스트 2023. 5. 12. 19:19
풀이 방법 1. arr[i]의 값이 arr[i-1] 보다 큰 경우가 나올 때까지 i를 stack에 push 한다. -> 만약 arr[i] 값이 arr[i-1] 보다 작다면 arr[i]의 값이 스택에 있는 모든 인덱스에 저장되어 있는 수보다 작다는 의미이다. 2. arr[i] > arr[i-1] 인 경우 arr[i]보다 큰 수가 나올 때까지 stack에서 인덱스를 하나씩 pop한다. 이 경우 오큰수를 발견한 것이므로 arr[stack.pop()] = arr[i] 해준다. arr[i] 보다 큰 수가 나왔다면 더이상 pop하지 않고 i를 push 해준다. 3. 인덱스 맨 끝까지 탐색을 마쳤다면 스택에 있는 값을 하나씩 pop 해주며 해당 인덱스에 -1 값을 넣어준다. (이 경우 자신보다 큰 오큰수를 발견하지 ..
-
데이터베이스기타 2023. 5. 11. 02:25
1. DBMS란? : 데이터베이스 관리 시스템. 사용자가 데이터를 효율적으로 구성, 복원, 검색 가능하도록 하는 응용 프로그램 모음 2. RDBMS 와 NOSQL의 차이점 - RDBMS : 관계형 데이터베이스 관리 시스템으로 모든 데이터가 2차원 테이블 형태로 표현되고, 서로의 칼럼을 기준으로 JOIN이 가능 -NoSQL : Not Only SQL 비 관계형 데이터베이스로 테이블 간 관계를 정의하지 않아 join이 불가능하고 key값에 대한 입출력만 지원. rdbms보다 복잡도가 떨어져 대용량의 데이터를 저장, 관리하기 위해 등장 3. Index : 테이블을 처음부터 끝까지 검색하는 FTS(Full table scan)과는 달리 인덱스를 검색하여 테이블 검색 속도 향상 시킴 인덱스는 검색은 빠르게 되지만..
-
안드로이드 기초기타 2023. 5. 9. 21:56
1. 안드로이드 4대 컴포넌트 -> 인텐트를 통해 상호작용 - 액티비티 : 사용자가 appication과 상호작용하며 보이는 화면 - 서비스 : 백그라운드에서 작업을 처리하기 위해 사용, App이 종료되어도 백그라운드에서 동작(ex) 음악 앱) - content provider : 데이터를 관리하고 다른 app의 데이터를 제공하는데 사용. 데이터를 저장하고 불러와서 사용할 수 있는 시스템(ex) 인스타에서 갤러리 앱 접근을 통해 사진을 가져옴) - broadcast receiver : 안드로이드 os로부터 발생하는 이벤트 정보를 받고 대응하는 컴포넌트.(ex) 배터리 부족 알림) 2. 인텐트란 : 애플리케이션 컴포넌트 간 정보를 전달하는 역할을 하는 통신수단 3. 액티비티 라이프 사이클 onCreate ..
-
프로그래머스 택배 배달과 수거(자바) - 카카오코딩테스트 2023. 4. 13. 00:41
문제 설명 당신은 일렬로 나열된 n개의 집에 택배를 배달하려 합니다. 배달할 물건은 모두 크기가 같은 재활용 택배 상자에 담아 배달하며, 배달을 다니면서 빈 재활용 택배 상자들을 수거하려 합니다. 배달할 택배들은 모두 재활용 택배 상자에 담겨서 물류창고에 보관되어 있고, i번째 집은 물류창고에서 거리 i만큼 떨어져 있습니다. 또한 i번째 집은 j번째 집과 거리 j - i만큼 떨어져 있습니다. (1 ≤ i ≤ j ≤ n) 트럭에는 재활용 택배 상자를 최대 cap개 실을 수 있습니다. 트럭은 배달할 재활용 택배 상자들을 실어 물류창고에서 출발해 각 집에 배달하면서, 빈 재활용 택배 상자들을 수거해 물류창고에 내립니다. 각 집마다 배달할 재활용 택배 상자의 개수와 수거할 빈 재활용 택배 상자의 개수를 알고 있..
-
프로그래머스 연속된 부분 수열의 합(자바) - 투포인터카테고리 없음 2023. 4. 11. 20:36
문제 설명 비내림차순으로 정렬된 수열이 주어질 때, 다음 조건을 만족하는 부분 수열을 찾으려고 합니다. 기존 수열에서 임의의 두 인덱스의 원소와 그 사이의 원소를 모두 포함하는 부분 수열이어야 합니다. 부분 수열의 합은 k입니다. 합이 k인 부분 수열이 여러 개인 경우 길이가 짧은 수열을 찾습니다. 길이가 짧은 수열이 여러 개인 경우 앞쪽(시작 인덱스가 작은)에 나오는 수열을 찾습니다. 수열을 나타내는 정수 배열 sequence와 부분 수열의 합을 나타내는 정수 k가 매개변수로 주어질 때, 위 조건을 만족하는 부분 수열의 시작 인덱스와 마지막 인덱스를 배열에 담아 return 하는 solution 함수를 완성해주세요. 이때 수열의 인덱스는 0부터 시작합니다. 제한사항 5 ≤ sequence의 길이 ≤ 1..
-
SQL 프로그래머스 LV2코딩테스트 2023. 4. 7. 01:10
1. GROUP BY, HAVING -> HAVING은 집계함수에 대해 조건문을 쓰고 싶을 때 사용(WHERE에는 집계함수 사용 불가) SELECT CAR_ID, ROUND(AVG(DATEDIFF(END_DATE, START_DATE)+1),1) AS AVERAGE_DURATION FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY GROUP BY CAR_ID HAVING AVERAGE_DURATION >= 7 ORDER BY AVERAGE_DURATION DESC, CAR_ID DESC 2. CAR_RENTAL_COMPANY_CAR 테이블에서 '통풍시트', '열선시트', '가죽시트' 중 하나 이상의 옵션이 포함된 자동차가 자동차 종류 별로 몇 대인지 출력하는 SQL문을 작성해주세요. ..