leetcode 문제 Two Sum 입니다.
본 포스트는 이해를 돕기 위해 문제를 간략하게만 정리하였으므로 상세 내용과 코드 제출은 아래 링크를 참고해 주세요.
LeetCode - The World's Leading Online Programming Learning Platform
Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.
leetcode.com
문제 개요 설명
입력받은 숫자 리스트 중, 더해서 target이 되는 두 수의 인덱스를 리스트에 담아서 반환합니다.
입력
- 숫자가 담겨있는 리스트 nums가 주어집니다.
- 두 가지 숫자를 더해서 나와야 하는 결과인 숫자 target이 주어집니다.
출력
- 조건을 충족하는 (더하면 target이 되는) 숫자들의 인덱스 위치를 리스트에 담아 반환합니다.
입출력 예시
입력 :
Input:
nums = [2,7,11,15], target = 9
출력 :
Output: [0,1]
0번째 위치의 2와 1번째 위치의 7을 더하면 target 숫자인 9가 됩니다.
솔루션 코드
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
n = len(nums)
result = []
for i in range(n):
tmp = target - nums[i]
if tmp in nums[i+1:n]:
result.append(i)
result.append(nums[i+1:n].index(tmp) + i + 1)
return result
주어진 리스트를 전체 2회 순회하며 값을 찾을 수도 있지만, 조건을 체크하여 1회 순회만으로 정답을 찾을 수 있도록 코드를 작성하였습니다. 찾아야 하는 숫자를 미리 설정하고(tmp), 해당 값이 리스트에 있는지 체크하여 있는 경우 해당 값들을 리스트에 담아서 리턴해줍니다.
'문제정리' 카테고리의 다른 글
USACO 2019 January Contest, Bronze Problem 3. Guess the Animal (1) | 2023.10.15 |
---|---|
DMOPC '19 Contest 5 P2 - Charlie's Crazy Conquest (1) | 2023.10.07 |
USACO 2023 February Contest, Bronze Problem 1 Hungry Cow (0) | 2023.08.14 |
USACO 2023 US Open Contest, Bronze Problem 1 FEB (0) | 2023.08.08 |
COCI '14 Contest 2 #2 Utrka (0) | 2023.07.25 |