Home

[프로그래머스] 소수 만들기 문제 풀이

1. 문제 https://programmers.co.kr/learn/courses/30/lessons/12977 2. 풀이 import math from itertools import combinations def is_sosu(number): for i in range(2, int(math.sqrt(number))+1): if number % i == 0: return False return True def solution(nums): answer = 0 for x in list(combinations(nums, 3)): if...

Read more

[프로그래머스] 불량 사용자 풀이

1. 문제 https://programmers.co.kr/learn/courses/30/lessons/64064 2. 풀이 불량 아이디 별로 가능한 user id 를 확인합니다. 구한 아이디들을 dfs 를 이용하여 가능한 모든 경우의 수를 구합니다. def solution(user_id, banned_id): ban_users = [[] for x in range(len(banned_id))] # 1. 각 불량 아이디 별로 가능한 user id 확인 for b_idx, ban in enumerate(banned_id): for u_idx, user in enum...

Read more

[프로그래머스] 폰켓몬 풀이

1. 문제 https://programmers.co.kr/learn/courses/30/lessons/1845 2. 풀이 2.1. python def solution(nums): N = len(nums)/2 nums = set(nums) return len(nums) if N >= len(nums) else N 2.2. C++ #include <iostream> #include <algorithm> #include <set> using namespace std; int solution(vector<int> nums) { se...

Read more

[프로그래머스] 시저 암호 문제 풀이

1. 문제 https://programmers.co.kr/learn/courses/30/lessons/12926 2. 풀이 def solution(s, n): answer = '' for x in s: if x.isalpha() == False: answer += x continue if x.islower(): base = 'a' else: base = 'A' answer += chr(ord(base) + ((ord(x) + n - ord...

Read more

[프로그래머스] 땅따먹기 문제 풀이

1. 문제 https://programmers.co.kr/learn/courses/30/lessons/12913 2. 풀이 dp 를 이용해서 문제를 해결합니다. 현재 위치로 올 수 있는 경로까지의 값 중에서 가장 큰 값과 현재의 값을 더하는 식을 반복합니다. def solution(land): dp = [[0]*4 for i in range(len(land))] for i, x in enumerate(land[0]): dp[0][i] = land[0][i] for i in range(1, len(land)): dp[i][0] = max(dp[i -...

Read more

[프로그래머스] 야근 지수 문제 풀이

1. 문제 https://programmers.co.kr/learn/courses/30/lessons/12927 2. 풀이 힙을 사용해서 제일 큰 숫자부터 1씩 빼주는 작업을 수행합니다. 가장 큰 수가 1씩 감소하는 것이 다른 수가 1씩 감소하는 것보다 훨씬 더 값을 줄일 수 있습니다. import heapq def solution(n, works): heap = [] for x in works: heapq.heappush(heap, -x) for i in range(n): bigger = -heapq.heappop(heap) ...

Read more