전체 글
-
12977. 소수 만들기(Python, Programmers Level 1)Programmers 2022. 9. 5. 01:38
문제 설명 주어진 숫자 중 3개를 더했을 때 소수인 경우의 개수를 구합니다. 코드1 서로 겹치지 않는 인덱스의 숫자 세 개를 더한 수를 만듭니다. n = len(nums) for i in range(n): for j in range(1 + i, n): for k in range(1 + j, n): num = nums[i] + nums[j] + nums[k] if all(num % m != 0 for m in range(2, int(num ** 0.5) + 1)): answer += 1 2 ~ n ** 0.5 범위의 숫자로 나누어 떨어지는 숫자가 하나도 없는 경우가 소수인 경우입니다. if all(num % m != 0 for m in range(2, int(num ** 0.5) + 1)): answer ..
-
70128. 내적(Python, Programmers Level 1)Programmers 2022. 9. 4. 23:19
문제 설명 1차원 배열 a, b가 주어질 때, 동일한 위치의 요소를 서로 곱하고, 그 결과를 모두 더해 반환합니다. 코드 1. a, b에서 각 요소를 차례대로 가져옵니다. for i, j in zip(a, b): 그 수를 서로 곱해 결과에 더합니다. answer += i * j 더보기 def solution(a, b): answer = 0 for i, j in zip(a, b): answer += i * j return answer if __name__ == '__main__': result = solution([1, 2, 3, 4], [-3, -1, 0, 2]) print(3 == result, result) result = solution([-1, 0, 1], [1, 0, -1]) print(-2 =..
-
76501. 음양 더하기(Python, Programmers Level 1)Programmers 2022. 9. 4. 22:57
문제 설명 absolutes에는 숫자의 절댓값, signs에는 부호가 주어집니다. 이 둘을 조합하여 실제 정수를 구하고, 그 합을 반환합니다. 코드 absolutes와 signs의 각 요소를 하나씩 가져옵니다. for absolute, sign in zip(absolutes, signs): sign이 True라면 absolute를 더하고, False라면 빼줍니다. answer += absolute if sign else -absolute 더보기 def solution(absolutes, signs): answer = 0 for absolute, sign in zip(absolutes, signs): answer += absolute if sign else -absolute return answer if ..
-
518. Coin Change 2(Python, LeetCode Medium)LeetCode 2022. 9. 4. 22:49
문제 설명 주어진 동전을 이용하여 주어진 금액을 만드는 방법의 수를 반환하세요! 입력 coins: 동전의 종류를 의미하는 1차원 리스트 amount: 구성해야하는 총 금액 풀이 만약, [1, 2]원의 코인으로 3원을 만든다고 할 때, 1원은 0 → 1, 1 → 2, 2 → 3의 경우에 사용할 수 있으며, 2원은 0 → 2, 1 → 3의 경우에 사용할 수 있습니다. 동전을 하나씩 차례로 순회하며, 해당 동전의 크기만큼을 뺀 위치에 있는 숫자를 현재 위치에 더하는 방법으로 접근할 수 있습니다. 코드 더보기 from typing import List class Solution: def change(self, amount: int, coins: List[int]) -> int: dp = [0] * (amount..
-
86051. 없는 숫자 더하기(Python, Programmers Level 1)Programmers 2022. 9. 4. 22:25
문제 설명 입력에 포함되지 않는 0 ~ 9의 숫자를 찾아 모두 더해 반환합니다. 코드 범위 내 전체 숫자 목록을 set으로 구성합니다. range_numbers = {i for i in range(10)} 입력받은 숫자를 set으로 만듭니다. numbers = set(numbers) set 간의 minus 연산이 가능하다는 사실을 참고하여, 범위 숫자 중 입력받은 숫자를 제외한 나머지를 더해 반환합니다. return sum(range_numbers - numbers) 더보기 def solution(numbers): range_numbers = {i for i in range(10)} numbers = set(numbers) return sum(range_numbers - numbers) if __name..
-
64061. 크레인 인형뽑기 게임(Python, Programmers Level 1)Programmers 2022. 9. 4. 22:13
문제 설명 크레인 게임을 통해 각 칸에서 캐릭터 인형을 뽑으며, 뽑은 인형을 쌓았을 때 동일한 인형이 겹친다면 터뜨려지면서 바구니에서 사라지게 됩니다. 게임을 진행하면서 폭발하는 총 개수는 몇 개인가요? 코드 n * n 크기의 board가 입력으로 주어지므로, n은 len(board)와 같습니다. n = len(board) 입력받은 board는 행을 기준으로 리스트를 순회하기 좋은 형태이나, 인형을 뽑을 때는 열을 기준으로 뽑아가는 것이 편하기에 그렇게 변경합니다. board를 순차적으로 순회한다면, 위쪽 행부터 순회되어 먼저 뽑힐 인형부터 저장되게 되는데, 이를 빼내려고 한다면 앞에서부터 빼내는 형태가 될 것입니다. pop_arr = [deque() for _ in range(n)] for b in b..
-
67256. [카카오 인턴] 키패드 누르기(Python, Programmers Level 1)Programmers 2022. 9. 4. 01:30
문제 설명 키패드의 각 숫자를 규칙에 따라 누릅니다. 좌측 열은 왼손으로, 우측 열은 오른손으로 누르며, 가운데 열은 가까운 손가락으로 누르되, 좌우 손가락과의 거리가 동일하면 왼손잡이는 왼손 오른손잡이는 오른손으로 누릅니다. 주어진 숫자를 규칙에 따라 누르는 데 사용된 손가락 순서를 반환합니다. 코드 코드를 간단하게 만들기 위해, *을 10, #을 12로 두고 진행합니다. 또한 이 위치는 왼손과 오른손의 시작 위치가 됩니다. left = 10 right = 12 눌러야 하는 숫자를 순서대로 가져옵니다.(for 사용) for num in numbers: 코드를 간단하게 만들기 위해 0또한 11로 두고 진행합니다. if num == 0: num = 11 왼쪽 열은 3으로 나눴을 때, 나머지가 1인 숫자가 ..
-
81301. 숫자 문자열과 영단어(Python, Programmers Level 1)Programmers 2022. 9. 4. 01:00
문제 설명 영단어로 바뀐 숫자를 포함한 숫자 카드가 주어질 때, 원래 숫자를 찾아 반환합니다. 코드 문자열 내의 모든 영단어를 숫자로 변환합니다. s = s \ .replace("zero", '0') \ .replace("one", '1') \ .replace("two", '2') \ .replace("three", '3') \ .replace("four", '4') \ .replace("five", '5') \ .replace("six", '6') \ .replace("seven", '7') \ .replace("eight", '8') \ .replace("nine", '9') 결과를 int로 변환하고 반환합니다. return int(s) 더보기 def solution(s): s = s \ .repla..