분류 전체보기 55

LeetCode) 가장 긴 팰린드롬 부분 문자열

영어를 몰라서 첫문자와 끝문자가 같은 부분을 출력하는 로직을 짰다가 다 지웠다.. 팰린드롬 문자란 뒤집어도 같은 문자를 뜻한다. 예시로 'bsb' 를 꺼꾸로 뒤집어도 'bsb'가 되니 팰린드롬 문자에 해당한다. 총 3가지 로직을 소개하겠다. 처음에는 문자열을 2~n개씩 nlogn번 검사하는 로직이다. 예상되는 시간복잡도는 O(nlogn) 이 로직은 통과 했지만 시간이나 메모리가 다른 로직에 비해 비효율적이였다. class Solution: def longestPalindrome(self, s: str) -> str: if s == s[::-1]: return s tl = [] for i in range(len(s)): for j in range(len(s) - 1, i - 1, -1): if s[i] =..

Algorithm 2022.05.13

python3) defaultdict

python의 딕셔너리는 다음 코드에서 Keyerror가 난다. strs = ["eat","tea","tan","ate","nat","bat"] ans = {} for i in strs: ans["".join(sorted(i))].append(i) print(list(ans.values())) ans에 key가 없을 때는 값을 추가할 수 없다는 에러가 난다. 그렇다고 몇의 공간이 필요한지, 어떤 키를 사용 해야 하는지 모르는 상황에서 key를 미리 할당할 수 도 없는 노릇이다. 그래서 사용해야 하는 것이 defaultdict 다. 기본 라이브러리인 from collections import defaultdict 로 사용할 수 있으며 다음과 같이 사용하면 된다. strs = ["eat","tea","tan..

Algorithm 2022.05.13

JQuery) 자동 완성 기능(autocomplete)

html의 input태그에 자동완성 기능을 추가해 보았다. $("#company_name").autocomplete({ //오토 컴플릿트 시작 source: company_list, // source는 data.js파일 내부의 List 배열 focus: function (event, ui) { // 방향키로 자동완성단어 선택 가능하게 만들어줌 return false; }, minLength: 1,// 최소 글자수 delay: 100, //autocomplete 딜레이 시간(ms) //disabled: true, //자동완성 기능 끄기 }); 위 코드를 넣을때 꼭 추가해 주어야 할 것이 있다. 바로 JQuery ui링크 추가!

JQuery 2022.05.12

mongoDB) Primary Key 활용하는 법(_id)

몽고DB에는 auto increment기능이 없다. (있어도 더 쉬운 방법을 찾았다.) 관계형db가 아니기 때문에 사용하기는 편하지만 PK에 해당하는 부분을 직접 추가해주려니 여간 머리 아픈일이 아니다. 그래서 생각해낸 방법이 몽고DB에는 요소를 추가할때 자동적으로 _id라는 값을 할당해주는데 PK와 동일하게 활용할 수 있다. 하지만 이 값은 str처럼 그냥 접근하게되면 온갖 에러가 뜨게된다. 구글링을 통해 찾아낸 방법. 해당 라이브러리를 Import해준 뒤 위와 같이 str화 시킨 후 값을 사용하다가 ObjectId("str")

DB 2022.05.11

[IntelliJ] 글자 깨짐 현상 (error : unmappable character for encoding MS949)

구글링 결과 해당 문제를 해결한 경우를 찾을 수 있었지만 나는 여전히 글자가 깨지는 문제가 있다. 인코딩이 붙어있는 모든 옵션을 UTF-8로 바꿔주었다. 하지만 결과는 똑같은 현상... shift키를 두번 눌러서 vm을 검색해주고 해당 창을 띄워준다. 그리고 다음과 같이 입력 후 저장을 해준다. (프로그램 재부팅은 필수!) -Dconsole.encoding=UTF-8 결과: 수정사항이 있는경우 재부팅뿐만 아니라 rebuild를 해줘야 한다는 사실이 기억났다. 자세히 뒤져보니 콘솔탭에도 인코딩 옵션이 있어서 바꿔주었다. 그리고 Gradle탭에 clean이라는 실행파일도 있네? 결과: 다시 구글링 결과 해당 파일이 없을시 새로 만들기 -> 리소스 번들 -> gradle입력 후 생성 파일 안 에 아래 코드를 ..

IDE 2022.04.20