안녕하세요. 이번 시간에는 비트 연산자 중에서 요새 자주 써 먹는 것 중 하나인 xor 연산자를 보겠습니다. bit dp를 푸실 때도 나름 유용하게 쓰일 수 있는 것이니 잘 알아가시면 좋겠습니다. 먼저 bitprint 함수를 소개하겠습니다. int형 변수 x가 들어오면, 이것의 비트를 출력해 줍니다. 예를 들어 15는 00000000 00000000 00000000 00001111 이렇게 나타날 겁니다. 보통 비트는 집합과도 잘 쓰이는데요. 예를 들자면 tsp 문제에서 어떤 도시를 방문했는가와 그렇지 않았는가는 0이나 1로 표현이 될 겁니다. 그러니 비트로 나타내면 좋을 거에요. 1번째 도시를 방문했다면 1, 아니면 0. 이렇게요. 여기서 사용되는 것도 집합입니다. 방문한 도시의 집합. 그런데, 집합 S..
전체 글 검색 결과
꽤 최근에 토이 프로젝트의 controller 코드가 조금 단순화 되었음을 볼 수 있습니다. 아직 리팩토링이 다 끝났다고 말 하기도 그렇지만. 사실 어제 리뷰를 받고 valid 어노테이션을 적용한 것이 조금 컸습니다. 변경 내역은 이 링크에서 보실 수 있습니다. 사실 문제의 발단은 사소한 테스트에서 출발하였습니다. 유저가 중복된 경우에 대해서 왜 내 프로젝트는 500을 떨어트릴까? 예외 처리가 느슨해 보였습니다. 그런데 마침 카톡방에서 리뷰어 분들이 제 프로젝트를 보시고, Bad request 부분을 처리하는 로직이 비대해 보인다면서, Valid 어노테이션을 써 보는 게 어떻겠냐는 조언을 주셨습니다. 먼저 dependencies에 Validation을 추가합니다. pom.xml에는 spring-boot-..
int to string과, string to int는 것은 생각보다 코딩 테스트에 상당히 자주 보이는 문제입니다. 물론 단독으로 출제되는 경우는 거의 없다시피 하고, 구현 문제의 중간 단계에서 필요한 경우가 왕왕 있습니다. 언젠가 정리해 두려고 했는데, 지금에 와서야 정리하게 되네요. 먼저, string을 int로 바꾸는 것은 Integer의 parseInt로 합니다. string을 long으로 바꾼다면, Long의 parseLong으로 하겠죠. 생각보다 parseXXX를 자주 쓰게 될 겁니다. 역으로, int를 String으로 바꾸기 위해서 Integer의 toString을, long을 String으로 바꾸기 위해서 Long의 toString을 이용합니다. 이것을 그림으로 그려보면 아래와 같아요. 어..
도커를 이용해서 친구랑 같이 mysql과 django를 compose 해 보다가 한 가지 문제가 발생하였습니다. depends on mysql을 이용해서 web을 띄웠는데도 불구하고 간헐적으로 오류가 나는 현상이 나타났던 것입니다. 로그를 보던 도중에, 완전히 디비가 초기화 되지 않았는데도, web에 관한 로그가 생성되었고 제가 테스트용으로 넣어둔 db 접속 테스트가 fail이 뜨면서 exception이 떨어졌습니다. x before y 문제에 걸린 것인데요. 이는, depends on이 'ready' 상태가 될 때 까지 기다리지 않기 때문입니다. 이는 공식 문서에서도 잘 설명이 되어 있었습니다. 그래서 저는 compose file에 command 부분에 따로 shell file을 넣어서, 쉘 파일 내에..
안녕하세요. 이번 시간에는 mysql의 substring_index 함수에 대해서 배워볼 거에요. 문서를 보시면 간단하게 이해할 수 있으실 듯 합니다. 이것이 단독으로 쓰일지는 모르겠는데요. 구분자를 가지고 token을 떨어트릴 때 이용할 수 있습니다. 사용 용례를 간단하게 봅시다. target string은 'a|bb|ccc'라고 해 봅시다. 얼핏 봐도 '|'을 구분자로 해서 필드 3개짜리인 데이터가 들어 있는데요. 2번째 인자에 '|'을 넣고 3번째 인자에 2를 넣어 봅시다. 그러면 놀랍게도 'a|bb'가 떨어지게 되는데요. 2번째 '|'가 나오기 직전까지 잘라버렸음을 알 수 있어요. 3번째 인자에 음수 값이 들어갈 수도 있는데요. 이 경우, 거꾸로 탐색해 버리게 됩니다. 예를 들어 보겠습니다. 1번..
최근댓글