Algorithm

Algorithm/Programmers

[Algorithm][Programmers] 같은 숫자는 싫어 (Java)

문제 출처 : https://school.programmers.co.kr/learn/courses/30/lessons/12906 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은 수들을 반환할 때는 배열 arr의 원소들의 순서를 유지해야 합니다. 배열 arr에서 연속적으로 나타나는 숫자는 제거하고 남은 수들을 return 하는 solution 함수..

Algorithm/Programmers

[Algorithm][Programmers] 삼각 달팽이 (Java)

문제 출처 : https://school.programmers.co.kr/learn/courses/30/lessons/68645 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 정수 n이 매개변수로 주어집니다. 다음 그림과 같이 밑변의 길이와 높이가 n인 삼각형에서 맨 위 꼭짓점부터 반시계 방향으로 달팽이 채우기를 진행한 후, 첫 행부터 마지막 행까지 모두 순서대로 합친 새로운 배열을 return 하도록 solution 함수를 완성해주세요. 입출력 예시 풀이 구현 문제라고 생각하여 규칙을 찾는데 n의 수만큼 방향이 변경되는 것을 확인할 수 있었습..

Algorithm/Programmers

[Algorithm][Programmers] 완주하지 못한 선수 (Java)

문제 출처 : https://school.programmers.co.kr/learn/courses/30/lessons/42576 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요. 입출력 예시 풀이 HashMap을 사용..

Algorithm/Algorithm

그래프 탐색 (DFS & BFS)

그래프 탐색 그래프 탐색은 그래프의 시작 정점이 주어졌을 때, 시작점에서 간선을 타고 이동할 수 있는 모든 정점을 한 번씩 탐색하는 것을 의미합니다. 그래프 탐색 방법에는 깊이 우선 탐색(DFS), 너비 우선 탐색(BFS)이 있습니다. 시간 복잡도 : 인접 행렬(O(V^2)), 인접 리스트(O(V+E)) V : 접점, E : 간선 DFS DFS는 시작점에서 시작하여 해당 분기를 모두 탐색 후 다음 분기로 넘어가는 탐색 방법입니다. 모든 경로를 탐색할 때 DFS를 사용한다. 검색 속도는 BFS에 비해 느리다. 메모리 효율은 인접리스트가 인접 행렬에 비해 좋지만 속도는 인접 행렬이 빠르다. 스택 또는 재귀를 이용하여 구현한다. BFS BFS는 시작점에서 가까운 점들을 우선적으로 탐색하는 방법입니다. 두 노드..

Algorithm/Algorithm

조합 (Combination)

조합 조합은 서로 다른 n개에서 순서 없이 r개의 숫자를 뽑는 경우의 수를 의미한다. static int K; static int[] arr; static boolean[] visited; // 조합 public static void main(String[] args) { arr = new int[]{1, 2, 3}; K = 2; // 뽑는 개수 visited = new boolean[arr.length]; //배열의 개수만큼 초기화 combination(0, 0); } public static void combination(int idx, int cnt) { if (cnt == K) { for(int i = 0; i < arr.length; i++) { if(visited[i]) System.out.p..

Algorithm/Algorithm

순열 (Permuation)

순열 순열은 서로 다른 n개의 값 중에서 r개의 숫자를 뽑는 경우의 수를 의미한다. static int K; static int[] arr, result; static boolean[] visited; // 순열 public static void main(String[] args) { arr = new int[]{1, 2, 3}; K = 2; // 뽑는 개수 result = new int[K]; visited = new boolean[arr.length]; //배열의 개수만큼 초기화 permutation(0); } public static void permutation(int cnt) { if (cnt == K) { System.out.println(Arrays.toString(result)); retu..

Jyuni
'Algorithm' 태그의 글 목록 (2 Page)