๋ชฉ๋ก๋ถ๋ฅ ์ ์ฒด๋ณด๊ธฐ (60)
Study Anything ๐ง
#Array #Sorting n๊ฐ์ ์ ์ด 2D ํ๋ฉด์ points[i] = [xi, yi] ์ผ๋ก ์ฃผ์ด์ง๋ค. ์์ญ ์์ ๋ค๋ฅธ ์ ์ด ์๋ ๊ฐ์ฅ ๋์ ์์ง์์ญ์ ๋ฐํํ๋ผ. ์์ง์์ญ์ ๋๋น๊ฐ ๊ณ ์ ๋, Y์ถ์ ๋ฐ๋ผ ๋ฌดํํ๊ฒ ํ์ฅํ๋ ์์ญ์ด๋ค. ๊ฐ์ฅ ๋์ ์์ง์์ญ์ ๊ฐ์ฅ ๊ธด ๋๋น๋ฅผ ๊ฐ์ง ์์ญ์ด๋ค. ์์ญ์ ๋ชจ์๋ฆฌ ์์ ์ ์ ์์ญ์ ํฌํจ๋์ง ์๋๋ค. Trial 1 : Python3, 22/02/11 class Solution: def maxWidthOfVerticalArea(self, points: List[List[int]]) -> int: points.sort() re=0 for i in range(1,len(points)): re = max(re, points[i][0]-points[i-1][0]) return ..
#String ์ฃผ์ด์ง ์ ํจํ IP ์ฃผ์๋ฅผ ๋ณ๊ฒฝ๋ ๋ฒ์ ์ผ๋ก ๋ฐํํ๋ผ. ๋ณ๊ฒฝ๋ IP ์ฃผ์๋ ๋ชจ๋ "."๋ฅผ "[.]"๋ก ๋ฐ๊พผ๋ค. Trial 1 : Python3, 22/02/10 class Solution: def defangIPaddr(self, address: str) -> str: return address.replace('.','[.]') ํ์ด: ์ฃผ์ด์ง ๋ฌธ์์ด์ '.' ๋ฌธ์๋ฅผ '[.]'์ผ๋ก ๋ฐ๊พธ๋ฉด ๋๋ ๊ฐ๋จํ ๋ฌธ์ ์ด๋ค. ๋ฆฌ๋ทฐ: ๋ฐํ์ 42.33%, ๋ฉ๋ชจ๋ฆฌ 89.24% ์ ๊ฒฐ๊ณผ๋ฅผ ์ป์๋ค. ๋ฌธ์ ๊ฐ ๊ฐ๋จํ ๋งํผ ๋ฐํ์๊ณผ ๋ฉ๋ชจ๋ฆฌ์ ๋ถํฌ๊ฐ ์ด์ดํ๊ฒ ๋์ด์์๋ ๊ฒ ๊ฐ๋ค. ํ๊ณ ๋ณด๋ ๋ฌธ์ ๊ฐ ๋๋ฌด ๊ฐ๋จํด์ ์กฐ๊ธ์ ๋ฏผ๋งํ์ง๋ง.. ์ผ๋จ์ ํ์์ผ๋ ๊ธ๋ก ๋จ๊ฒจ๋๋ ๊ฒ์ผ๋ก,,
ํ๋ก์ ํธ๋ฅผ ์ฌ๋ฌ ๋ช ์ด ํจ๊ป ์งํํ๋ค๋ณด๋ ๊ฐ ํ์์ด ์๋ก ๋ค๋ฅธ ์ฑ์ ๊ตฌํํ๊ฒ ๋๋๋ฐ, ์ด ๋ ๋ค๋ฅธ ์ฑ์ ๋ชจ๋ธ ํ๋๋ฅผ ์ธ๋ํค๋ก ์ฌ์ฉํ๊ฑฐ๋ ๋ชจ๋ธ ์์ฒด๋ฅผ ๋ด ์ฑ์์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ด๋ป๊ฒ ์ฌ์ฉํ๋ฉด ๋๋์ง์ ๋ํ ๋ด์ฉ์ ๋ค๋ค๋ณด๋ ค๊ณ ํ๋ค. ํธ์์ ๋ด ์ฑ์ ์ด๋ฆ์ 'myapp', ๋ค๋ฅธ ํ์์ ์ฑ ์ด๋ฆ์ 'yourapp'์ผ๋ก ์์ ํ๋๋ก ํ๊ฒ ๋ค. ๋ชจ๋ธ๋ค์ ๋ด์ฉ์ ๋ค์๊ณผ ๊ฐ๋ค. # myapp/models.py class Review(models.Model): ... userId = models.ForeignKey(User, on_delete=models.CASCADE) ... # yourapp/models.py class User(models.Model): ... Review ๋ชจ๋ธ์์๋ User ๋ชจ๋ธ์ ์ธ๋ํค๋ก ์ฌ์ฉํ์ง๋ง ..
ํ๋ก์ ํธ๋ฅผ ์งํํ๋ค๊ฐ ์ด๊ธฐ์ ์์ฑํ๋ ๋ชจ๋ธ ๋ด์ฉ์ ์์ ํ๊ณ , ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ ์ญ์ ํด์ผ ํ ์ด์๊ฐ ๋ฐ์ํด์ ๊ด๋ จ ๋ด์ฉ์ ์ํํ๊ณ ๊ธ๋ก ์ ๋ฆฌํด๋ณด๋ ค๊ณ ํ๋ค. (1) ๋ชจ๋ธ ์์ ํ๊ธฐ ๊ธฐ์กด์ ์์ฑํ๋ ๋ชจ๋ธ์ ๋ด์ฉ์ ๋ค์๊ณผ ๊ฐ๋ค. # app/models.py class Review(models.Model): reviewId = models.IntegerField(primary_key=True)# ์ญ์ ํ ๋ด์ฉ userId = models.ForeignKey(User, on_delete=models.CASCADE) bookId = models.CharField(max_length=30) reviewTxt = models.TextField() ์ด ๋ด์ฉ์์ ์ํ ์ ๋ชฉ, ์ํ ํ์ , ์ํ ์์ฑ๋ ์ง ํ๋๋ฅผ ์ถ๊ฐํ๊ณ PK์ธ rev..
์ฐธ๊ณ : https://wikidocs.net/75004 Pandas(์ดํ ํ๋ค์ค)๋ ํ์ด์ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก, ๋ฐ์ดํฐ ์กฐ์ ๋ฐ ๋ถ์์ ์ฉ์ดํ๋ฉฐ ์ฌ์ฉํ๊ธฐ ์ฌ์ด ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์ ๊ณตํ๋ค. ๋ฐ์ดํฐํ๋ ์, ์๋ฆฌ์ฆ, ์ธ๋ฑ์ค ๋ฑ์ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ ๊ณตํ๋ฉฐ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ ์ด๋ธ๊ณผ ๊ฐ์ ๊ตฌ์กฐ๋ก, SQL๊ณผ ๊ฐ์ ํํ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ ์ ์๊ธฐ ๋๋ฌธ์ ์ฝ๊ฒ ์ ๊ทผํ ์ ์๋ค. ๋จ๋ ์ฌ์ฉ๋ณด๋ค๋ NumPy, scikit-leran, matplotlib ๊ณผ ํจ๊ป ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค. (1) ํ๋ค์ค์ ์๋ฃ๊ตฌ์กฐ ํ๋ค์ค๊ฐ ์ ๊ณตํ๋ ์๋ฃ๊ตฌ์กฐ์ด๋ค. ์๋ฆฌ์ฆ๋ ๋ฐฐ์ด ํ์, ๋ฐ์ดํฐํ๋ ์์ ํ ํ์์ ๊ตฌ์กฐ์ด๋ฉฐ ์๋ฆฌ์ฆ๊ฐ ๋ชจ์ฌ ๋ฐ์ดํฐํ๋ ์์ ๊ตฌ์ฑํ๋ค. ์๋ฆฌ์ฆ : ๊ฐ(values) + ์ธ๋ฑ์ค(index) ๋ฐ์ดํฐํ๋ ์ : ์นผ๋ผ(columns) + ์ธ๋ฑ์ค..
์ง๋ ํฌ์คํธ๊น์ง ๊ตฌํํ๋ ์ํ ์์ฑ ๊ธฐ๋ฅ๋ค์ ์ฅ๊ณ ๊ธฐ๋ณธ ๊ธฐ๋ฅ์ ์ด์ฉํด์ ๊ตฌํํ๋ค. ๊ทธ๋ฌ๋ ์ฐ๋ฆฌ ํ๋ก์ ํธ๊ฐ ํ๋ก ํธ์ ๋ฐฑ์๋๊ฐ ๋๋ ์ ธ์๊ธฐ ๋๋ฌธ์ ํ๋ก ํธ์ ๋ฐฑ์๋๋ฅผ ์ฐ๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ์ฌ๋ฌ ๋ฐฉ๋ฉด์ผ๋ก ๋ชจ์ํ๋ค. ๊ทธ๋ฌ๋ฉด์ ์ต์ข ์ ์ผ๋ก ์ฅ๊ณ ๋ ์คํธ ํ๋ ์์ํฌ (DRF: Django REST Framework) ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ํ๋ก ํธ์ธ ๋ฆฌ์กํธ์ ๋ฐฑ์๋์ธ ์ฅ๊ณ ๋ฅผ ์ฐ๊ฒฐํ๊ณ ์ ํ์๋ค. ๊ทธ๋ฌ๋ ์ค ์ค๋ ๋๋์ด!! ํ๋ก ํธ์ธ ๋ฆฌ์กํธ ํ์ด์ง์์ ์์ฑํ ์ํ์ ๋ด์ฉ์ ๋ฐฑ์๋์ธ ์ฅ๊ณ ๋ชจ๋ธ์ ์ ์ฅํ๊ณ ๋ถ๋ฌ์ค๋ ๊ฒ์ ์์ฑํด์ ๊ทธ ๊ณผ์ ์ ๊ฐ๋จํ๊ฒ ํฌ์คํ ํด๋ณด๋ ค๊ณ ํ๋ค. (1) ์ฅ๊ณ : review/urls.py urls.py ํ์ผ์์๋ ์ฅ๊ณ ์๋ฒ์ url ๋ค์ views.py ์ ํจ์๋ค๊ณผ ์ฐ๊ฒฐํ๋ ๋ด์ฉ์ ๋ด๊ณ ์๋ค. path('', vie..
#HashTable #String #SlidingWindow ๋ ๋ฌธ์์ด s์ p๊ฐ ์ฃผ์ด์ง๋ค. ์ด ๋ p์ ๋ชจ๋ ๋ฌธ์๊ฐ ์ฌ์ฉ๋ s์ ์์ ์ธ๋ฑ์ค๋ฅผ ๋ฆฌ์คํธ๋ก ๋ฐํํ๋ค. ๋จ, ๋ฐํํ๋ ๋ฆฌ์คํธ ์์ ์์ ์์๋ ์๊ด์ด ์๋ค. * ์ ๋๊ทธ๋จ(Anagram)์ด๋? ๋จ์ด๋ ๊ตฌ์ ๊ธ์๋ฅผ ์ฌ๋ฐฐ์นํ์ฌ ๋ง๋ ๋จ์ด๋ ๊ตฌ๋ฌธ์ผ๋ก, ๋ชจ๋ ๊ธ์๋ฅผ ํ ๋ฒ์ฉ๋ง ์ฌ์ฉํ๋ค. ์์: (Input) s = "cbaebabacd", p = "abc" (Output) [0,6] Trial 2 : Python3, 22/02/03 class Solution: def findAnagrams(self, s: str, p: str) -> List[int]: result = [] phash = defaultdict(int) shash = defaultdict..
#HashTable #String #SlidingWindow ๋ ๋ฌธ์์ด s์ p๊ฐ ์ฃผ์ด์ง๋ค. ์ด ๋ p์ ๋ชจ๋ ๋ฌธ์๊ฐ ์ฌ์ฉ๋ s์ ์์ ์ธ๋ฑ์ค๋ฅผ ๋ฆฌ์คํธ๋ก ๋ฐํํ๋ค. ๋จ, ๋ฐํํ๋ ๋ฆฌ์คํธ ์์ ์์ ์์๋ ์๊ด์ด ์๋ค. * ์ ๋๊ทธ๋จ(Anagram)์ด๋? ๋จ์ด๋ ๊ตฌ์ ๊ธ์๋ฅผ ์ฌ๋ฐฐ์นํ์ฌ ๋ง๋ ๋จ์ด๋ ๊ตฌ๋ฌธ์ผ๋ก, ๋ชจ๋ ๊ธ์๋ฅผ ํ ๋ฒ์ฉ๋ง ์ฌ์ฉํ๋ค. ์์: (Input) s = "cbaebabacd", p = "abc" (Output) [0,6] Trial 1 : Python3, 22/02/02 class Solution: def findAnagrams(self, s: str, p: str) -> List[int]: result = [] psorted = sorted(p) for i in range(len(s)): ..
์ฐธ๊ณ : https://www.django-rest-framework.org/api-guide/serializers/ ์ฅ๊ณ ๋ ์คํธ ํ๋ ์์ํฌ(Django REST Framework)๋ฅผ ์ด์ฉํด REST API ํ๊ฒฝ์ ๊ตฌ์ถํ๋ค๋ณด๋ฉด Serializer๋ฅผ ๊ฑฐ์ ํ์์ ์ผ๋ก ์ฌ์ฉํ๊ฒ ๋๋ค. ํ์ง๋ง Serializer๊ฐ ์ด๋ค ๊ฐ๋ ์ธ์ง ์ ์๋ฟ์ง ์์์ Serializer์ ๋ํด ๊ณต๋ถํ๊ณ ์๊ฒ ๋ ๊ฒ๋ค์ ์ ๋ฆฌํด๋ณด๋ ค๊ณ ํ๋ค. (1) Serializer๋? ์ฟผ๋ฆฌ์ ์ด๋ ๋ชจ๋ธ ์ธ์คํด์ค ๊ฐ์ ๋ณต์กํ ๋ฐ์ดํฐ๋ค์ ๋ค์ดํฐ๋ธ ํ์ด์ฌ ๋ฐ์ดํฐ ํ์ ์ผ๋ก ๋ณํํ์ฌ json, xml ๋ฑ์ ์ปจํ ์ธ ํ์ ์ผ๋ก ์ฝ๊ฒ ๋ ๋๋งํ ์ ์๊ฒ ํ๋ค. ๋ฐ์ดํฐ๋ฅผ ์ง๋ ฌํํ๋ Serializer๋ ์ญ์ง๋ ฌํ ๊ธฐ๋ฅ ๋ํ ์ ๊ณตํ๊ธฐ ๋๋ฌธ์ ๋ค์ด์ค๋ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ฆํ ํ์ ๋ถ..
์ฅ๊ณ ์ ๋ฆฌ์กํธ๋ฅผ ์ฐ๊ฒฐํ๋ ์ฌ๋ฌ ๋ฐฉ๋ฒ ์ค DRF(Django REST Framework)๋ฅผ ํ์ฉํ๋ ๋ฐฉ๋ฒ์ด ์๋ค. REST API ๋ฅผ ํตํ๋ฉด ๋ฐ์ดํฐ์ CRUD(Create, Read, Update, Delete)๋ฅผ ์ฝ๊ฒ ์ฒ๋ฆฌํ ์ ์๋๋ฐ, ์ด๋ฒ ํฌ์คํธ์์๋ ํนํ ๋ฐ์ดํฐ์ Create, ๋ฆฌ์กํธ์์ ์์ฑํ ๊ธ์ ์ฅ๊ณ ๋ชจ๋ธ์ ๋ฑ๋กํ๋ ๊ณผ์ ์ ๋ค๋ค๋ณด๋ ค๊ณ ํ๋ค. (๋ฆฌ์กํธ์ ์ฅ๊ณ ์ ์ค์น๋ ์๋ตํ๋๋ก ํ๊ฒ ๋ค.) ์ฅ๊ณ REST API ๋ฅผ ๊ตฌ์ถํ๋ ๊ณผ์ ์ ์ด์ ํฌ์คํธ์์ ๋ค๋ฃจ์๋ค. ์ฅ๊ณ ๋ชจ๋ธ์ json ๊ฐ์ฒด๋ก ์ถ์ถํ๊ธฐ (DRF) ์ฅ๊ณ ๋ก ํ๋ก์ ํธ๋ฅผ ์งํํ๋ค ๋ณด๋ฉด ํ๋ก ํธ์ ์ฐ๋ํ๊ฒ ๋ ๋๊ฐ ์๋ค. ์ด ๋ฐฉ๋ฒ๋ค์ ์ด์ ํฌ์คํธ(link)์์ ์์ธํ ์ค๋ช ํ๊ณ , ์ด ํฌ์คํธ์์๋ ๊ทธ ์ค ์ฅ๊ณ ์์ ๋ง๋ ๋ชจ๋ธ์ json ๊ฐ์ฒด๋ก ์ถ์ถํด์ ์ ..