목록코딩공부 (24)
이모저모
1. 나의 풀이 def solution(s): s = s.split(" ") answer = 0 for idx,val in enumerate(s): if val == "Z": answer -= int(s[idx-1]) else: answer += int(val) return answer 2. ":=" 사용(할당 표현식) #1. def solution(s): answer = 0 for i in range(len(s := s.split(" "))): answer += int(s[i]) if s[i] != "Z" else -int(s[i-1]) return answer #2. def solution(s): answer = 0 s = s.split(" ") for i in range(len(s)): answer..
1. 나의 풀이 def solution(n): def prime_num(n): arr = [i for i in range(2,n+1)] for k in range(2,n+1): if n%k == 0: remove_ = [i for i in range(2*k, n+1, k)] arr = [i for i in arr if i not in remove_] return arr answer = [i for i in prime_num(n) if n%i==0] return answer 에라토스테네스의 체를 사용하여 n보다 작은 소수 list를 얻고 이후 소수가 n의 약수인지 판별하는 순서로 문제를 해결하였다. set의 사용이 익숙하지 않아 list comprehension을 이용하여 구했는데 정확하진 않은 것 같아 ..
1. 나의 풀이 def num_factor(number): num_factor = 0 for i in range(1, int(number**(0.5))+1): if number%i==0: num_factor += 1 # 제곱수인지 확인 if int(number**(0.5))**2 == number: num_factor = (num_factor-1)*2 +1 else: num_factor = num_factor*2 return num_factor def solution(number, limit, power): answer = [num_factor(i) for i in range(1,number+1)] answer = [i if i
1. 나의 풀이 # 기존풀이 def solution(numbers, direction): if direction == "right": answer = [numbers[-1]] + numbers[:-1] else: answer = numbers[1:] + [numbers[0]] return answer # del과 insert를 이용한 풀이 def solution(numbers, direction): if direction == "right": numbers.insert(0, numbers[-1]) del numbers[-1] else: numbers.append(numbers[0]) del numbers[0] return numbers 2. del, pop, insert설명 (by chatgpt) 2.1..
1. 나의 풀이 def is_prime(n): for i in range(2, int(n**(1/2))+1): if n%i == 0: return False return True def solution(n): answer = 0 for i in range(2,n+1): if is_prime(i): answer+=1 return answer 2. 에라토스테네스의 체를 이용한 풀이 1~n까지의 자연수 중 소수를 걸러내는 방법 중 하나이다. 1은 소수가 아니므로 지우고 2는 소수이므로 2를 제외한 2의 배수를 1~n개의 set 중에서 뺀다. 이후 3이 소수이므로 3을 제외한 3의 배수를 제외한다. 이런 식으로 5,7,11 의 배수들을 제거하면 된다. 관련자료 https://namu.wiki/w/%EC%97%9..
1. 나의 풀이 def solution(data, ext, val_ext, sort_by): answer = [] col_dic = {"code": 0,"date":1,"maximum":2,"remain":3} for dt in data: if dt[col_dic[ext]] < val_ext: answer.append(dt) answer.sort(key = lambda x: x[col_dic[sort_by]]) return answer 2. sort(key = ) 2.1. 기본정렬 sort에 key라는 파라미터를 설정할 수 있다는 것을 처음 알았다. key를 이용하면 key에서 사용한 함수의 결과에 따라 정렬을 한다. 기본은 오름차순이고 내립차순으로 정렬하고 싶으면 reverse = True를 설정하면 ..
1. 나의 풀이 소수를 판별하는 함수처럼 코드를 짰다. def solution(n): # 제곱수인 경우 순서쌍은 홀수, 이외는 짝수이다. # n**(1/2)의 수까지 순서쌍을 탐색하고 제곱수라면 -1,*2,+1의 순서로 계산하고 아니면 *2만 한다. pair_num = 0 for i in range(1,int(n**(1/2))+1): if (n%i)==0: pair_num += 1 if int(n**(1/2)) == n**(1/2): answer = (pair_num-1)*2 + 1 else: answer = pair_num*2 return answer 2. filter 풀이 def solution(n): return len(list(filter(lambda v: n % (v+1) == 0, range(..
1. 나의 풀이 import math def solution(nums): answer = 0 able_num_list = [] # 숫자 중 3개 선택 시 가능 조합 선정 for i in range(len(nums)-2): for j in range(i+1,len(nums)-1): for k in range(j+1, len(nums)): able_num_list.append([nums[i],nums[j],nums[k]]) # 소수인지 판별하는 방법. def is_prime(num): for i in range(2,int(math.sqrt(num))+1): if num%i == 0: return False return True for num_list in able_num_list: if is_prime(su..