알고리즘/프로그래머스

[완전탐색] 모의고사 / 소수 찾기 / 카펫

래울 2021. 9. 15. 20:44

https://programmers.co.kr/learn/courses/30/lessons/42840

 

코딩테스트 연습 - 모의고사

수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는

programmers.co.kr

def solution(answers):
    case1, case2, case3 = [1,2,3,4,5], [2,1,2,3,2,4,2,5], [3,3,1,1,2,2,4,4,5,5]
    s = [0, 0, 0]
    for i in range(len(answers)):
        if case1[i%5] == answers[i]:
            s[0] += 1
        if case2[i%8] == answers[i]:
            s[1] += 1
        if case3[i%10] == answers[i]:
            s[2] += 1
    return [i+1 for i in range(3) if s[i]==max(s)]

 


https://programmers.co.kr/learn/courses/30/lessons/42839

 

코딩테스트 연습 - 소수 찾기

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

programmers.co.kr

from itertools import permutations
def solution(numbers):
    answer = 0
    cases = []
    for i in range(len(numbers)):
        cases += ([int(''.join(i)) for i in list(permutations(list(numbers), i+1))]) 
    for i in set(cases):
        if isPrime(i):
            answer += 1
    return answer

def isPrime(num):
    if num<=1:
        return False
    for i in range(2, num):
        if num%i==0:
            return False
    return True

 


https://programmers.co.kr/learn/courses/30/lessons/42842

 

코딩테스트 연습 - 카펫

Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과

programmers.co.kr

def solution(brown, yellow):
    answer = []
    size = brown+yellow
    for i in range(1, size):
        if size%i == 0: #i로 나눠 떨어지면..
            y = size//i
            x = size//y
            if (x-2)*(y-2) == yellow:
                answer = [x, y]
    return answer