전체 글 50

(간단한 코드)리트코드 217. Contains Duplicate

제목에서 Duplicate는 "중복"을 의미한다.  다시 말해서, 주어진 리스트에 중복이 있는가?라는 것을 확인하면 끝인데. 일단 "리스트 원소의 중복"이라는 단어가 나올때 먼저 떠올려야 하는것은 set()이다.  초보자일 경우에 가장 먼저 떠올리는 방법은 "하나하나 확인"일 것이다. 다음과 같이 코드를 짤 수 있다.class Solution: def containsDuplicate(self, nums: List[int]) -> bool: h = set() for num in nums: if num in h: return True else: h.add(num) ..

(간단한 코드)리트코드 771. Jewels and Stones

이 문제는 jewels는 문자열 형태로 한가지 문자들만 담고 있고, stones 안에는 다양한 문자열들이 있다.그리고 여기서 문자를 "돌"이라고 칭하고, stones는 내가 가지고 있는 돌 중에, jewels에 해당하는 돌이 몇개 있는지 알아보는 것이다.  class Solution: def numJewelsInStones(self, jewels: str, stones: str) -> int: cnt = 0 for s in stones: if s in jewels: cnt += 1 return cnt 그냥 내가 가지고 있는 돌들 중에, jewels안에 몇개 있는지 확인하는 것이 가장 간단한 방법이다.c..

(간단한 코드)리트코드 228. Summary Ranges

개인적으로 정말로 많이 마음이 꺾였던 문제였다.  해답을 보면서 "와... 이렇게 생각을 할 수 있구나"라는 생각을 했지만, 기본적으로 나는 while문을 정말로 싫어하고 잘 못 쓰기 때문에 가급적이면 for문으로 해결하고 싶었지만, 잘 안되었다.class Solution: def summaryRanges(self, nums: List[int]) -> List[str]: ans = [] i = 0 while i {nums[i]}') else: ans.append(str(nums[i])) i += 1 # 여기의 i는 안에 있는 while문이 끝났을 때 다음 i의 위치에 가는 역..