본문 바로가기
728x90

전체 글138

프로그래머스 3단계 입국심사[java] 문제 n명이 입국심사를 위해 줄을 서서 기다리고 있습니다. 각 입국심사대에 있는 심사관마다 심사하는데 걸리는 시간은 다릅니다. 처음에 모든 심사대는 비어있습니다. 한 심사대에서는 동시에 한 명만 심사를 할 수 있습니다. 가장 앞에 서 있는 사람은 비어 있는 심사대로 가서 심사를 받을 수 있습니다. 하지만 더 빨리 끝나는 심사대가 있으면 기다렸다가 그곳으로 가서 심사를 받을 수도 있습니다. 모든 사람이 심사를 받는데 걸리는 시간을 최소로 하고 싶습니다. 입국심사를 기다리는 사람 수 n, 각 심사관이 한 명을 심사하는데 걸리는 시간이 담긴 배열 times가 매개변수로 주어질 때, 모든 사람이 심사를 받는데 걸리는 시간의 최솟값을 return 하도록 solution 함수를 작성해주세요. 제한사항 입국심사를 기.. 2021. 2. 17.
프로그래머스 3단계 가장 먼 노드[java] 문제 n개의 노드가 있는 그래프가 있습니다. 각 노드는 1부터 n까지 번호가 적혀있습니다. 1번 노드에서 가장 멀리 떨어진 노드의 갯수를 구하려고 합니다. 가장 멀리 떨어진 노드란 최단경로로 이동했을 때 간선의 개수가 가장 많은 노드들을 의미합니다. 노드의 개수 n, 간선에 대한 정보가 담긴 2차원 배열 vertex가 매개변수로 주어질 때, 1번 노드로부터 가장 멀리 떨어진 노드가 몇 개인지를 return 하도록 solution 함수를 작성해주세요. 제한사항 노드의 개수 n은 2 이상 20,000 이하입니다. 간선은 양방향이며 총 1개 이상 50,000개 이하의 간선이 있습니다. vertex 배열 각 행 [a, b]는 a번 노드와 b번 노드 사이에 간선이 있다는 의미입니다. 해결방안 이 문제는 bfs를 .. 2021. 2. 13.
문자열 자르기 substring 자바를 사용하다 보면 문자열을 내가 원하는 길이만큼 자르고 싶을 때가 있다. 이럴 때 substring를 사용하면 효과적으로 문자열을 자를 수 있다. 1. 특정 index부터 뒷부분을 자르고 싶을 때 substring(int index)를 이용 String ex = "0123456789"; String tmp =""; tmp = ex.substring(5); System.out.println(tmp);//56789 2. 특정 부분을 자르고 싶을 때 substring(int beginindex, int endindex)를 이용 String ex = "0123456789"; String tmp =""; tmp = ex.substring(0,5); System.out.println(tmp);//01234 **.. 2021. 2. 4.
객체지향 프로그래밍 이란 자바는 흔히들 객체 지향 프로그래밍 언어라고 한다. 하지만 객체 지향 프로그래밍이 뭐냐고 물어본다면 확실하게 대답해지는 것이 어려워 진다. 따라서 객체지향 프로그래밍이 무엇인지와 장점 그리고 특징에 대해서 알아볼 필요가 있다고 생각한다. 객체지향 프로그래밍이랑 - 컴퓨터 프로그래밍의 패러다임 중 하나로 여러 개의 독립된 객체들의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법이다. 여기서 객체는 필요한 데이터를 추상화시켜 상태와 행위를 가진 것을 말한다. 객체지향 프로그래밍의 장점과 단점 장점 * 코드 재사용의 용이 - 다른 사람의 클래스를 가져와 사용하기가 쉽다. * 유지보수의 적합 - 수정해야할 부분이 있을 경우 클래스 내부의 멤버 변수 혹은 메서드만 수정하면 된다. * 대형프로젝트에 적합 .. 2021. 2. 1.
compare 메소드 프로그래머스 문제를 풀면서 compare에 대해서 정리할 필요가 있다고 느껴서 정리를 했다!! 자바로 코딩테스트 문제를 풀때 문자열이나 배열을 비교하기 위해서 꼭 필요한 메서드라고 생각한다! 우선 가장 기본적으로 알아야 하는 사실 비교를 했을 때 A와 B를 비교 A.compareTo(B)의 경우 A == B 일때 0을 반환 A > B 일때 양수를 반환 A < B 일때 음수를 변환 맨 첫자리부터 차례대로 비교함 *문자열 비교일 때 주의 1. 차이만큼을 반환한다. ex) A = "abc"이고 B = "cba" 일때 -2를 반환 코드 import java.util.Arrays; import java.util.Comparator; public class pratice_compare { public static .. 2021. 1. 26.
캐시 교체 알고리즘 처음 쓰는 알고리즘 페이지!! 캐시 교체 알고리즘은 프로그래머스에서 문제를 풀다가 캐시 교체 알고리즘으로 풀라고 했을 때 공부하고 공부한 내용을 블로그에 올리면서 정리하면 좋겠다고 생각해서 이 글을 쓰게 되었다! 캐시 교체 알고리즘이란! - 가장 최근에 사용되지 않은 메모리를 지우는 것이다. 기본적으로 가장 오랫동안 사용되지 않았다면 앞으로도 사용되지 않을 것이라는 생각을 기본으로 한다. * cache hit - cache에 넣으려는 값이 cache에 있는 경우 * cache miss - cache에 넣으려는 값이 cache에 없는 경우 최종적으로 정리하면 1. 캐시에 없는 데이터가 들어온 경우 1. 캐시가 가득차있으면, 가장 오래된 데이터를 제거 후 캐시에 데이터를 넣는다. 2. 캐시에 공간이 있으면 .. 2021. 1. 23.
728x90