Algorithm/Programmers 73

[Python] 소수 만들기

from itertools import combinations def solution(nums): coms = list(combinations(nums, 3)) answer = 0 for com in coms : num = sum(com) count = 0 for i in range(2, num+1) : if num % i == 0 : count += 1 if count == 1 : answer += 1 return answer 풀이 ① combinations 함수를 사용하여 입력받은 nums에서 숫자 3개를 가져와 만들수 있는 조합을 coms에 리스트로 받는다. ② for 문을 통해 3개의 조합의 합이 ➀ (2번째 for문) 2부터 자기자신까지 반복하면서 i로 나누었을때 나누어 떨어지면 count에 +..

[Python] 체육복

def solution(n, lost, reserve): for i in lost[:] : if i in reserve : lost.remove(i) reserve.remove(i) for i in lost[:] : if i-1 in reserve : lost.remove(i) reserve.remove(i-1) elif i+1 in reserve : lost.remove(i) reserve.remove(i+1) return n - len(lost) 1. 처음 for문으로 lost, reserve 두 리스트에 들어가있는 학생들을 제거해준다. 2. 두번째 for문으로는 lost에 남아있는 학생의 번호 앞(먼저) 또는 뒤 번호의 학생이 체육복 여벌을 들고왔다면 lost, reseve에서 제거해준다. 3. n..

[Python] 시저 암호

def solution(s, n): result = [] for i in s : if i == " " : result.append(" ") else : ask = ord(i) + n if ask > ord("z") : ask_r = ord("a")-1 + (ask-ord("z")) result.append(chr(ask_r)) elif i.isupper() and ask > ord("Z") : ask_r = ord("A")-1 + (ask- ord("Z")) result.append(chr(ask_r)) else : result.append(chr(ask)) return ''.join(result) 문자를 아스키코드로 변형하여 n만큼 움직여준 뒤, 리스트에 추가해주는 방법 n만큼 이동한 아스키코드가 z(..