본문 바로가기

알고리즘

(5)
[programmers] 완전탐색 - 소수 찾기 programmers.co.kr/learn/courses/30/lessons/4283 문제 문제 설명 한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 조각으로 만들 수 있는 소수가 몇 개인지 return 하도록 solution 함수를 완성해주세요. 제한사항 numbers는 길이 1 이상 7 이하인 문자열입니다. numbers는 0~9까지 숫자만으로 이루어져 있습니다. 013은 0, 1, 3 숫자가 적힌 종이 조각이 흩어져있다는 의미입니다. 입출력 예 numbers return 17 3 011 2 입출력 예 설명 예제 #1 [1, 7]으로는 소수 [7, 17..
[codility] Sorting - Triangle 문제 더보기 N 개의 정수로 구성된 배열 A가 제공됩니다. 삼중 항 (P, Q, R)은 0 ≤ P A [Q]. 예를 들어 다음과 같은 배열 A를 고려하십시오. A [0] = 10 A [1] = 2 A [2] = 5 A [3] = 1 A [4] = 8 A [5] = 20 삼중 항 (0, 2, 4)은 삼각형입니다. 함수를 작성하십시오. 클래스 솔루션 {public int solution (int [] A); } 즉, N 정수로 구성된 배열 A가 주어지면이 배열에 삼각 삼중 항이 있으면 1을 반환하고 그렇지 않으면 0을 반환합니다. 예를 들어, 다음과 같은 배열 A를 제공합니다. A [0] = 10 A [1] = 2 A [2] = 5 A [3] = 1 A [4] = 8 A [5] = 20 위에서 설명한대로 함..
빅오(Big-O) 표기법 https://www.youtube.com/watch?v=6Iq5iMCVsXA&list=PLjSkJdbr_gFYSUYfnF_OGXtnGs2d3vWg7 위의 동영상을 보고 정리해보았습니다. 상수 시간 (Constant time) - O(1) F(int[] n){ return (n[0] == 0) ? true:false; } 선형 시간 (Linear time) - O(n) F(int[] n){ for i=0 to n.length print i } 이차 시간 (quadratic time) - O(n제곱) F(int[] n){ for i = 0 to n.length for j = 0 to n.length print i+j; } 서브-이차 시간 (Sub-quadratic time) - O(nm) F(int[] n..
[programmers] 깊이/너비 우선 탐색(DFS/BFS) - 타겟 넘버 https://programmers.co.kr/learn/courses/30/lessons/43165 문제 [문제 설명] n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+1 = 3 +1+1-1+1+1 = 3 +1+1+1-1+1 = 3 +1+1+1+1-1 = 3 사용할 수 있는 숫자가 담긴 배열 numbers, 타겟 넘버 target이 매개변수로 주어질 때 숫자를 적절히 더하고 빼서 타겟 넘버를 만드는 방법의 수를 return 하도록 solution 함수를 작성해주세요. [제한사항] 주어지는 숫자의 개수는 2개 이상 20..
[programmers] 해시 - 완주하지 못한 선수 https://programmers.co.kr/learn/courses/30/lessons/42576 문제 [문제 설명] 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요. [제한사항] 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다. completion의 길이는 participant의 길이보다 1 작습니다. 참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로 이루어져 있습니다. 참가자 중에는 동..