NGMsoftware

NGMsoftware
로그인 회원가입
  • 매뉴얼
  • 팁 앤 테크
  • 매뉴얼

    팁과 테크니컬 노하우를 확인하세요.

    팁 앤 테크

    팁과 테크니컬 노하우를 확인하세요.

    본 사이트의 컨텐츠는 저작권법의 보호를 받으므로 무단 복사, 게재, 배포 등을 금합니다.

    에디터 경우의 수 조합에서 숫자 또는 문자만 조합되는 경우 건너뛰는 방법.

    페이지 정보

    본문

    안녕하세요. 엔지엠소프트웨어입니다. 경우의 수 조합은 주로 비밀번호 풀 때 사용하는 알고리즘입니다. 비밀번호 풀기나 특정 문자열을 조합할 때 아래글과 같이 스크립트를 만들어서 사용할 수 있습니다. 아래 글에서도 설명하고 있지만, 가장 간단한 방법은 [ 랜덤 문자열 조합 ] 액션을 사용하는겁니다.

    암호 풀기 매크로 - 숫자, 영어 4자리 조합 (랜덤 문자열 조합 또는 경우의 수만큼 조합하는 예제) ]

     

    랜덤 문자열 조합과 암호 풀기 예제를 참고하여 자신에게 적합한 방법을 사용하시면 됩니다. 순차적으로 조합되는 경우 숫자만 조합되는건 비밀번호에 입력하지 않고 건너뛰는 방법을 알아볼건데요. 이 예제를 테스트하기 위해 엔지엠 매크로 에디터를 실행하고, 새로운 스크립트를 하나 추가하세요.

    cnOuw3h.gif

     

     

    우선, 경우의 수를 조합하는 방법에 대해 잠깐 알아보겠습니다. [ 암호 풀기 매크로 - 숫자, 영어 4자리 조합 (랜덤 문자열 조합 또는 경우의 수만큼 조합하는 예제) ] 글에서 스크립트를 보면 아시겠지만 자리수만큼 조합할 문자들을 등록해놓고 하나씩 바뀌가면서 비밀번호를 만들어줍니다. 간단하게 아래와 같이 2개의 숫자를 조합한다고 생각 해보세요.

    • 1,2
    • a,b

     

    위의 숫자와 문자를 순차적으로 조합하면 경우의 수는 1a, 1b, 2a, 2b 4개가 됩니다. 여기까지는 초등학교 때 배우는 산수라서 누구나 이해할 수 있을겁니다. 그러면 각각 3개의 항목을 조합하면 1a, 1b, 1c, 2a, 2b, 2c, 3a, 3b, 3c 총 9개의 경우의 수가 만들어집니다. 쉽죠^^

    • 1,2,3
    • a,b,c

     

    경우의 수를 만드는 방법을 아주 쉽게 알아봤는데요. 이제 자리수가 4개라면 아래와 같을겁니다. 모든 경우의 수를 조합한다면요.

    • 1,2,3,a,b,c
    • 1,2,3,a,b,c
    • 1,2,3,a,b,c
    • 1,2,3,a,b,c

     

    위 4자리 비밀번호 경우의 수를 조합하는건 직접 해보세요. 이번에는 1111이 만들어집니다. 그런데, 오직 숫자로만 된 조합은 비밀번호로 사용하고 싶지 않을 수 있습니다. 그렇다면 조합된 비밀번호가 숫자인지 판단해서 숫자라면 건너뛰게 만들면 됩니다. 이 부분은 약간 어려울 수 있는데요. 아래 예제를 잘 따라해보면 스스로 만들 수 있을겁니다. 전체 내용은 아래와 같습니다.

    XyMTTB2.jpg

     

     

    변수는 총 4개가 사용되었습니다. 첫번째 변수는 첫번째 자리수를 저장하고, 두번째 변수는 두번째 자리수를 저장합니다. 만약, 비밀번호가 4자리라면 a, b, c, d 4개의 변수가 필요하고, [ Foreach 반복 ] 액션도 4개가 필요합니다. result 변수는 조합된 최종 비밀번호를 저장하는 변수입니다. 그리고, check 변수는 result 변수에 저장된 값이 숫자인지 판단하는 결과값을 저장합니다.

     

    이 예제에서는 Foreach 반복 액션이 2개만 사용되었으므로 2자리의 비밀번호를 만듭니다. 테스트를 간단하게 처리하기 위해 둘다 아이템 소스는 1,2,3,a,b,c 6개만 넣었습니다.

    ZUMjhYq.jpg

     

     

    [ 문자열 연결 ] 액션으로 첫번재 자리와 두번째 자리의 수 또는 문자를 합쳐줍니다. a변수에 1이 있고, b변수에 3이 있다면 이 액션으로 13을 만들 수 있습니다.

    LtW8HSy.jpg

     

     

    [ 파이썬 코드 실행 ] 액션으로 간단하게 숫자인지 판단할 수 있습니다. 변수의 값이 숫자인지 판단하는 여러가지 방법들이 있는데요. 파이썬 코드 실행이 아닌 다른 방법으로 처리하려면 [ 변수의 값이 숫자인지 체크하는 방법 ] 글을 읽어 보세요.

    emq32gO.jpg

     

     

    [ 텍스트 체크 ] 액션으로 숫자인지 판단한 결과 값(True 또는 False)과 비교합니다. 숫자인지 체크한거라서 True와 같으면 건너뛰어야 합니다.

    5Vkt4yN.jpg

     

     

    [ 콘티뉴 ] 액션이 실행되면 아래에 있는 액션들이 실행되지 않고 다음 반복으로 건너뛰게 됩니다.

    xK4mKLR.jpg

     

     

    텍스트 체크 액션의 조건에서 True가 아니면 그룹 (숫자 아님)으로 이동합니다. 아래 조건 설정 속성을 보세요. 같음(True), 다름(False)인 경우 숫자 아님으로 이동하게 설정되어 있습니다.

    5Vkt4yN.jpg

     

     

    정말 숫자를 건너뛰는지 확인하기 위해 [ 출력 ] 액션으로 에디터 아웃풋에 결과 값을 찍어봤습니다.

    LDfPLBL.jpg

     

     

    이제 매크로를 실행 해보면, 아래와 같은 결과가 나오는걸 확인할 수 있습니다.

    rH0Zs1q.jpg

     

     

    하단 아웃풋의 내용을 보면 숫자로만 이루어진 조합은 만들어지지 않은걸 확인할 수 있습니다.

    1a
    1b
    1c
    2a
    2b
    2c
    3a
    3b
    3c
    a1
    a2
    a3
    aa
    ab
    ac
    b1
    b2
    b3
    ba
    bb
    bc
    c1
    c2
    c3
    ca
    cb
    cc

     

    이번에는 콘티뉴 액션을 사용 안함으로 변경하고 다시 실행 해보세요.

    L0LmBX4.jpg

     

     

    콘티뉴 액션이 실행되지 않으면 모든 경우의 수가 조합되므로 아래와 같이 6x6 다시 말해서 6의 제곱만큼 만들어집니다.

    11
    12
    13
    1a
    1b
    1c
    21
    22
    23
    2a
    2b
    2c
    31
    32
    33
    3a
    3b
    3c
    a1
    a2
    a3
    aa
    ab
    ac
    b1
    b2
    b3
    ba
    bb
    bc
    c1
    c2
    c3
    ca
    cb
    cc

     

    개발자에게 후원하기

    MGtdv7r.png

     

    추천, 구독, 홍보 꼭~ 부탁드립니다.

    여러분의 후원이 빠른 귀농을 가능하게 해줍니다~ 답답한 도시를 벗어나 귀농하고 싶은 개발자~

    감사합니다~

    • 네이버 공유하기
    • 페이스북 공유하기
    • 트위터 공유하기
    • 카카오스토리 공유하기
    추천0 비추천0

    첨부파일

    댓글목록

    등록된 댓글이 없습니다.