[DAY19] 완전탐색_소수찾기

2019. 8. 26. 20:47개발/알고리즘

반응형

소수 찾기

문제 설명

한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다.

각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 조각으로 만들 수 있는 소수가 몇 개인지 return 하도록 solution 함수를 완성해주세요.

제한사항

  • numbers는 길이 1 이상 7 이하인 문자열입니다.
  • numbers는 0~9까지 숫자만으로 이루어져 있습니다.
  • 013은 0, 1, 3 숫자가 적힌 종이 조각이 흩어져있다는 의미입니다.

입출력 예

numbers return
17 3
011 2

입출력 예 설명

  • 예제 #1
    [1, 7]으로는 소수 [7, 17, 71]를 만들 수 있습니다.

  • 예제 #2
    [0, 1, 1]으로는 소수 [11, 101]를 만들 수 있습니다.

11과 011은 같은 숫자로 취급합니다.

풀이

  • 접근
    1) String의 spilt를 사용하여 int [] 타입에 한 숫자씩 치환해서 넣기
    2) 1)에서 구한 숫자들의 순열을 구하면서 그 안에서의 소수를 구함. 중복 방지를 위한 set도 한 개 선언
    3) 2) 번에서 구한 소수 개수 반환

  • 풀이 과정에서 가장 중요했던 부분(몰랐던 부분)
    1) 순열: n 개의 값 중에서 r 개의 숫자를 모든 순서대로 뽑는 경우의 수

    swap를 통한 순열 처리. 해당 부분은 한번 더 공부 해야할 듯

출처 및 전체 소스

반응형

'개발 > 알고리즘' 카테고리의 다른 글

[DAY21] 완전탐색_카펫  (0) 2019.08.28
[DAY20] 완전탐색_숫자 야구  (0) 2019.08.27
[DAY18] 완전탐색_모의고사  (0) 2019.08.25
[DAY17] 힙(Heap)_이중우선순위  (0) 2019.08.24
[DAY16] 힙(Heap)_디스크 컨트롤러  (0) 2019.08.23