분류 전체보기
-
프로그래머스 숫자의 표현(자바)코딩테스트 2023. 6. 7. 14:51
문제 설명 Finn은 요즘 수학공부에 빠져 있습니다. 수학 공부를 하던 Finn은 자연수 n을 연속한 자연수들로 표현 하는 방법이 여러개라는 사실을 알게 되었습니다. 예를들어 15는 다음과 같이 4가지로 표현 할 수 있습니다. 1 + 2 + 3 + 4 + 5 = 15 4 + 5 + 6 = 15 7 + 8 = 15 15 = 15 자연수 n이 매개변수로 주어질 때, 연속된 자연수들로 n을 표현하는 방법의 수를 return하는 solution를 완성해주세요. 제한사항 n은 10,000 이하의 자연수 입니다. 처음에는 for문을 이중으로 돌리면 시간초과가 날 줄 알았는데 생각해보니 n^2이 1억이고 break를 이용해 중간에 for문을 빠져나오게 하면 시간초과가 안 났다. class Solution { publ..
-
백준 14719번 빗물(자바) - 스택코딩테스트 2023. 5. 29. 16:48
문제 2차원 세계에 블록이 쌓여있다. 비가 오면 블록 사이에 빗물이 고인다. 비는 충분히 많이 온다. 고이는 빗물의 총량은 얼마일까? 입력 첫 번째 줄에는 2차원 세계의 세로 길이 H과 2차원 세계의 가로 길이 W가 주어진다. (1 ≤ H, W ≤ 500) 두 번째 줄에는 블록이 쌓인 높이를 의미하는 0이상 H이하의 정수가 2차원 세계의 맨 왼쪽 위치부터 차례대로 W개 주어진다. 따라서 블록 내부의 빈 공간이 생길 수 없다. 또 2차원 세계의 바닥은 항상 막혀있다고 가정하여도 좋다. 출력 2차원 세계에서는 한 칸의 용량은 1이다. 고이는 빗물의 총량을 출력하여라. 빗물이 전혀 고이지 않을 경우 0을 출력하여라. 예제 입력 1 복사 4 4 3 0 1 4 예제 출력 1 복사 5 예제 입력 2 복사 4 8 3..
-
기타 문제풀이(합분해 문제 업그레이드)코딩테스트 2023. 5. 14. 17:44
숫자 k개를 더해서 n이 되는 경우의 수 구하기(k개는 모두 1이상이어야 하고 중복 불가능) import java.util.Scanner; class Program { static int count = 0; static boolean[] visited; public static void combinationSum(int depth, int target, int idx, int sum, int n, int k) { if (depth == k) { // 합이 n과 같으면 경우의 수 1 증가 if (sum == target) count++; return; } for (int i = idx; i
-
문제풀이코딩테스트 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 ..