2024/12/12 3

(간단한 코드)리트코드 383. Ransom Note

이 문제는 다음과 같다. magazine이라는 문자열에 있는 문자들로 ransomNote의 문자열을 만들 수 있는가이다.여기서 주의해야 할 점은 magazine의 문자열들은 각각 "한번씩"만 사용할 수 있다는 점이다. 그렇다면, 개수에 한계가 있다는 것을 들었을 때는 무조건 딕셔너리를 사용해야 한다(이를 해쉬맵 이라고도 부른다). 우선 magazine문자열 이용해 딕셔너리로 만들어주고, 만들어진 딕셔너리와 ransomNote의 문자열을 비교해서, 성립하는지 확인 하면 된다.class Solution: def canConstruct(self, ransomNote: str, magazine: str) -> bool: if len(ransomNote) > len(magazine): retur..

(간단한 코드)리트코드 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..