알고리즘 공부
-
[알고리즘 개념] 정렬알고리즘 공부/알고리즘 개념 2020. 8. 6. 18:12
정렬 알고리즘은 n개의 숫자가 입력으로 주어졌을 때, 이를 기준에 맞게 정렬하여 출력하는 알고리즘이다. 다양한 알고리즘이 존재하고, 알고리즘 별 공간 복잡도와 시간 복잡도도 다르기 때문에 상황에 알맞은 알고리즘을 찾아 사용하는 것이 적절하다. 안전 정렬, 불안전 정렬 정렬은 같은 값(key)의 위치가 고정되느냐 고정되지 않느냐에 따라 안전 정렬과 불안전 정렬로 나뉜다. 같은 값인 a1, a2가 있을 때 정렬된 후에도 a1, a2 순서를 유지하면 안전 정렬, 순서가 변한다면 불안전 정렬이다. 내부 정렬, 외부 정렬 데이터의 크기가 주 기억장소 용량보다 큰지 작은지에 따라 나뉜다. 데이터의 크기가 주 기억장소 용량보다 적을 경우 내부 정렬로 기억장소를 활용하여 정렬한다. 클 경우에는 외부 정렬로 외부 기억장..
-
[2019 카카오 겨울인턴] 불량사용자 (JAVA)알고리즘 공부/문제 풀이 2020. 5. 8. 21:11
도움을 받아 문제 해결함.. 1. 각각 banned_id에 해당하는 candidate 등록 1) banned_id의 "*" 을 정규식으로 사용가능한 "."으로 바꿔주기 -> replace이용 2) 길이 같을 때 정규식이 일치한다면 candidate 넣기 -> matches 메소드 이용 2. 모든 candidate에 대해 dfs로 탐색해주기 package kakao; import java.util.*; public class bannUser { static Integer[][] candidate; static boolean[] visit; static int solution(String[] user_id, String[] banned_id) { int answer = 0; candidate=new Inte..
-
[2019 카카오 겨울인턴] 튜플 (JAVA)알고리즘 공부/문제 풀이 2020. 5. 6. 22:01
1. 입력으로 들어온 스트링을 1 1,2 1,2,3 ... 과 같이 정리하기 1) 입력의 첫번째와 마지막을 감싸고 있는 중괄호 벗겨내기 ->String 메서드 s.substring 이용 2) 입력의 "},{"을 "/" 로 치환하기 -> replace 이용 split에 "},{" 들어가면 오류나서.. 아마 입력에 "},{"가 한 묶음처럼 나타나지 않는 부분도 있어서 그런듯 3) 치환된 "/"를 기준으로 스트링 나누어 스트링배열 만들기 -> String 메서드 s.split("") 이용 String subS=s.substring(2, s.length()-2); subS=subS.replace("},{","/"); String[] arrS=subS.split("/"); answer=new int[arrS.le..
-
[2019 카카오 겨울인턴] 인형뽑기 (JAVA)알고리즘 공부/문제 풀이 2020. 5. 6. 19:51
package kakao; public class catchDoll { static int solution(int[][] board, int[] moves) { int answer = 0; int[] baguni=new int[1000]; int top=-1; int col; int row=0; for(int i=0;i0 && baguni[top]==baguni[top-1]){ answer +=2 ; top -= 2; } } return answer; } public static void main(String[] args) { // TODO Auto-generated method stub int[][] board= {{0,0,0,0,0},{0,0,1,0,3},{0,2,5,0,1},{4,2,4,4,2},{..