๐Ÿ’ป์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๋ฌธ์ œ ํ’€์ด5

์ง€๋ฏผ์„œยท2023๋…„ 3์›” 13์ผ
0

coding test

๋ชฉ๋ก ๋ณด๊ธฐ
5/30

Chapter6. ์™„์ „ํƒ์ƒ‰

[๋ฌธ์ œ22] ์†Œ์ˆ˜์ฐพ๊ธฐ - Level2

ํ•œ ์ž๋ฆฌ ์ˆซ์ž๊ฐ€ ์ ํžŒ ์ข…์ด ์กฐ๊ฐ์ด ํฉ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ํฉ์–ด์ง„ ์ข…์ด ์กฐ๊ฐ์„ ๋ถ™์—ฌ ์†Œ์ˆ˜๋ฅผ ๋ช‡ ๊ฐœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š”์ง€ ์•Œ์•„๋‚ด๋ ค ํ•ฉ๋‹ˆ๋‹ค.

๊ฐ ์ข…์ด ์กฐ๊ฐ์— ์ ํžŒ ์ˆซ์ž๊ฐ€ ์ ํžŒ ๋ฌธ์ž์—ด numbers๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ข…์ด ์กฐ๊ฐ์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ์†Œ์ˆ˜๊ฐ€ ๋ช‡ ๊ฐœ์ธ์ง€ returnํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

- numbers๋Š” ๊ธธ์ด 1 ์ด์ƒ 7 ์ดํ•˜์ธ ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค.

- numbers๋Š” 0~9๊นŒ์ง€ ์ˆซ์ž๋งŒ์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.

- "013"์€ 0, 1, 3 ์ˆซ์ž๊ฐ€ ์ ํžŒ ์ข…์ด ์กฐ๊ฐ์ด ํฉ์–ด์ ธ ์žˆ๋‹ค๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค.

  • 1. ์†Œ์ˆ˜์ธ์ง€ ํŒ๋ณ„ํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
def checPrime(n):
	if n < 2:
    	return False
        
	for i in range(2, int(n ** 0.5) + 1):
    	if n % i == 0:
        	return False
    return True
  • 2. ์ฃผ์–ด์ง„ ์ข…์ด ์กฐ๊ฐ์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ์ˆซ์ž๋ฅผ ์ฐพ์Šต๋‹ˆ๋‹ค.
from itertools import permutations

for i in range(1, len(numbers) + 1):
	num.append(list(permutations(numbers, i)))
num = [int(''.join(y)) for x in num for y in x]
  • 3. 1๋ฒˆ๊ณผ 2๋ฒˆ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‚˜์˜จ ์†Œ์ˆ˜ ๋ฐฐ์—ด์˜ ๊ธธ์ด๋ฅผ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.
for i in num:
	if checkPrime(i):
    	answer.append(i)
        
return len(set(answer))
//์ตœ์ข… ์ •๋‹ต//
from itertools import permutations

def checPrime(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 = []
    numbers = list(numbers)
    #prime = primes(10 ** len(numbers) - 1)
    num = []
    
    for i in range(1, len(numbers) + 1):
    	num.append(list(permutations(numbers, i))
    num = [int(''.join(y)) for x in num for y in x]
    
    for i in num:
    	if checkPrime(i):
        	answer.append(i)
            
    return len(set(answer))
profile
๐Ÿ’ป + ๐ŸŽฅ

0๊ฐœ์˜ ๋Œ“๊ธ€