전체 글(152)
-
[C] int 그리고 음수의 표현에 대한 이해
만약 아래와 같이 프로그램을 작성하면 결과가 원하는대로 나오지 않는다. #includeint main(void){ unsigned int a; a = 4294967295; printf("%d\n", a); a = -1; printf("%u\n", a); return 0;}첫 번째 a에는 -1이, 두 번째 a에는 4294967295이 찍히는데, 그 이유가 뭘까 ? C에서 int형은 4바이트만큼 메모리를 차지하게 되는데, usigned int는 0~2^32 - 1 만큼의 숫자를 표현할 수 있고, int는 -2^31 ~ 2^31 -1만큼의 숫자를 표현할 수 있다. 부호가 있는 int형의 경우, 첫 번째 비트는 부호비트로 1이면 음수, 0이면 양수를 나타낸다. 4294967..
2024.07.27 -
[리트코드] 739. Daily Temperatures
문제 링크https://leetcode.com/problems/daily-temperatures/description/느낀 점어떻게든 O(N^2)이 안되는 방법을 생각해내야하는데, 지금까지 가장 큰 시점보다 더 올라간 시점을 찾았을 때, 이전에 이 점 보다 더 작은 점들을 계산해주는 방식으로 구했음. 솔직히 처음 문제를 보고 이렇게 딱 생각하기는 쉽지 않을 것 같다..from typing import Listimport collectionsclass Solution: def dailyTemperatures(self, T: List[int]) -> List[int]: count = [0 for _ in range(len(T))] stack = [] T = co..
2024.07.11 -
[리트코드] 2. Add Two Numbers
문제 링크https://leetcode.com/problems/add-two-numbers/description/느낀 점링크드 리스트의 개념과 구현 방식에 대해서 더 이해할 수 있었음!from typing import Optionalclass ListNode: def __init__(self, val=0, next=None): self.val = val self.next = nextclass Solution: def addTwoNumbers(self, l1: Optional[ListNode], l2: Optional[ListNode]) -> Optional[ListNode]: enum = 1 l1_d = 0 l2_d = 0 ..
2024.07.10 -
[리트코드] 206. Reverse Linked List
문제 링크https://leetcode.com/problems/reverse-linked-list/description/느낀 점링크드리스트가 어떻게 표현되는지 감을 잡을 수 있는 문제였다.# Definition for singly-linked list.# class ListNode:# def __init__(self, val=0, next=None):# self.val = val# self.next = nextclass Solution: def reverseList(self, head: Optional[ListNode]) -> Optional[ListNode]: node, prev = head, None while node:..
2024.07.10 -
[리트코드] 238. Product of Array Except Self
문제 링크https://leetcode.com/problems/product-of-array-except-self/description/느낀 점아이디어를 생각해내는 것이 상당히 어려운 문제였다.. 핵심은 자기 자신의 왼쪽과 오른쪽의 곱을 모두 곱하는 것이었는데, 그 값들을 얻어내는 과정은 때려맞춘 감이 없지않아 있는 문제..from typing import List class Solution: def productExceptSelf(self, nums: List[int]) -> List[int]: answer = [] p = 1 for i in range(len(nums)): answer.append(p) p *= num..
2024.07.10 -
[리트코드] 15. 3Sum
문제 링크https://leetcode.com/problems/3sum/description/?source=submission-noac느낀 점좋은 문제라고 생각했다. 투 포인터 문제 풀이 방식을 익힐 수 있다고 생각했기 때문이다. 하지만, 이전 원소와의 중복을 제거해주지 않으면 시간 초과가 나버리거나 중복으로 인해 정답이 틀리는 고약한 문제였다.. 나는 중복 배열을 없애기 위해 리스트를 만들고 존재하는지를 검사해주었는데, 그것 때문에 시간 초과가 계속 났음..class Solution: def threeSum(self, nums: List[int]) -> List[List[int]]: answer = [] nums.sort() for i in range(len(..
2024.07.04