ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • playdata 프로그래머스,백준 기초알고리즘5
    파이썬/알고리즘 공부 2021. 8. 3. 22:45
    728x90

    playdata 프로그래머스,백준 기초알고리즘5


    프로그래머스 소수 찾기


    • 예제 #1
      [1, 7]으로는 소수 [7, 17, 71]를 만들 수 있습니다.
    • 예제 #2[0, 1, 1]으로는 소수 [11, 101]를 만들 수 있습니다.
    • 11과 011은 같은 숫자로 취급합니다.
    import itertools
    
    def is_prime(num):
        #0과 1은 소수에 포함되지 않기때문에 False로 처리
        if num < 2:
            return False
        elif num==2:
            return True
    
        #넘겨 받은 수를 2부터 넘겨받은 숫자전까지의 숫자로 나누어줄때
        나머지가 없으면 소수가 아니므로 False, 나머지가 있으면 소수이므로 True
    
        for i in range(2, num):
            if num % i == 0:
                return False
        return True
    
    
    def solution(numbers):
        answer = 0
        num1 = []
        num2 = []
    
        #받은수의 길이만큼 수들의 모든 조합들을 추출
        ex) i 가 1일때['1', '7'], 2일때['17', '71'] 합쳐지면 [1, 71, 17, 7]
        for i in range(1, len(numbers)+1):
            num1 = list(map(''.join, itertools.permutations(numbers, i)))
    
            #int형으로 변환
            for j in num1:
                num2.append(int(j))
    
        #중복을 없애주기 위해 set형으로 변환     
        num2 = list(set(num2))
    
        #//[1, 71, 17, 7] 여기에서 소수이 있을때 answer에 1씩 더해준다.
        for i in num2:
            if is_prime(i):
                answer += 1
    
        return answer

    백준 숫자카드2


    #//밑에 필요한 기능들을 위한 라이브러리를 호출한다 (밑 문단참조)
    from sys import stdin
    
    
    N = int(input())
    #//임의의 개수의 정수를 한줄에 입력받아 리슽에 저장
    
    #split()안에 특정 값을 넣어주면 그 값을 기준으로 문자열을 나눔, 
    아무것도 없을때 공백을 기준으로 나눔,
    #list()는 자료형을 리스트형으로 변환(map 같이 사용)
    #결론: 입력된 값을 한칸 공백을 기준으로 한줄씩 읽어온다.
    
    arr_n = list(map(int,stdin.readline().split()))
    M = int(input())
    arr_m = list(map(int,stdin.readline().split()))
    
    #dic이라는 변수에 딕셔너리 생성
    dic = dict()
    
    #입력받은 값을 읽어와 각 숫자가 몇갠지 딕셔너리 형식으로 생성
    for i in arr_n:
        try :
            dic[i] += 1
        except:
            dic[i] = 1
    print(dic)
    
    #dic = {6: 1, 3: 2, 2: 1, 10: 3, -10: 2, 7: 1} 형식으로 추출
    
    #위에 딕셔너리를 이용해 키에맞는 value값을 옆으로 출력,
    for i in arr_m:
        try:
            print(dic[i], end = " ")
        except:
            print(0, end = " ")
    

    댓글

Designed by Tistory.