[ProblemSolving] 프로그래머스KIT - 완전탐색, 소수찾기, 카펫(bruteforce)
문제 설명은 생략하겠습니다. 링크를 클릭하세요.
모의고사
나의 풀이
1, 2, 3번 수포자의 방식을 리스트로 생성한다.
answer의 길이만큼 반복문을 돌려서 answer의 원소와 수포자의 답안이 같다면, 카운트를 증가시킨다.
코드
나의 코드
def solution(answers):
answer = []
n1 = [1, 2, 3, 4, 5]
n2 = [2, 1, 2, 3, 2, 4, 2, 5]
n3 = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5]
c1= c2= c3 =0
for i in range(len(answers)):
if answers[i] ==n1[i%5]:
c1+=1
if answers[i] ==n2[i%8]:
c2+=1
if answers[i] ==n3[i%10]:
c3+=1
maxd = max(c1, c2, c3)
if maxd == c1: answer.append(1)
if maxd == c2: answer.append(2)
if maxd == c3: answer.append(3)
return answer
소수 찾기
나의 풀이
- check 함수는 소수를 판정 -> 제곱근까지 판별하면 소수인지 아닌지 알 수 있다.
- permutaions 이용해 경우의수 -> set으로 중복 제거한다.
print(list(permutations(numbers,i)))
을 하게 되면
[('1',), ('7',)]
[('1', '7'), ('7', '1')]
출력되고, join을 이용하여 map으로 묶고 리스트로 묶으면
result = list(map(''.join , permutations(list(numbers), k)))
#print(result)
#['1', '7']
#['17', '71']
공백없는 문자열을 만들 수 있다.
map 함수는 map(변환 함수, 순회 가능한 데이터) : map은 이터레이터 데이터를 변홚함수에 적용해서 반환
join 함수는 문자열 합칠 때 사용하는 함수로, String 사이에 특정 문자열을 삽입해 나눠져 있던 String문자열을 새로운 문자열로 합쳐준다.
코드
나의 코드
from itertools import permutations
def check(n):
if n<2:
return False
for i in range(2, int(n**0.5)+1):
if n % i == 0:
return False
return True
def solution(numbers):
answer = []
for k in range(1, len(numbers)+1):
result = list(map(''.join , permutations(list(numbers), k)))
print(result)
for i in list(set(result)):
if check(int(i)):
answer.append(int(i))
answer = len(set(answer))
return answer
카펫
나의 풀이
이 문제의 포인트는 노란색 약수를 구하고, 노란색 부분으로 갈색의 가로, 세로 길이를 식으로 표현할 수 있다.
갈색의 가로 = 노란색의 가로 +2
갈색의 세로 = 노란색의 세로 +2
갈색의 가로 * 세로 = 전체 카펫 격자 개수일 때, 갈색의 가로, 세로를 구할 수 있으며, 이때, 1부터 돌아 조건을 만족하는 작은 값이 될 것이기 때문에 i+2가 세로, yellow//i+2가 가로가 된다.
코드
나의 코드
import math
def solution(brown, yellow):
yel = int(math.sqrt(yellow)//1)
for i in range(1, yel+1):
if yellow % i ==0:
if(i+2)*(yellow//i+2) == brown+yellow:
return[(yellow//i+2), i+2]
Author And Source
이 문제에 관하여([ProblemSolving] 프로그래머스KIT - 완전탐색, 소수찾기, 카펫(bruteforce)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@redcarrot01/ProblemSolving-프로그래머스KIT-완전탐색-소수찾기-카펫bruteforce저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)