반응형

분류 전체보기 78

[leetcode] 125. Valid Palindrome

문제 풀이 주어진 문자열이 팰린드롬인지 확인하는 문제이다. 팰린드롬은 뒤집어도 같은 말이 되는 단어 또는 문장을 말한다. 문제에서 팰린드롬인지 확인할 때 알파벳과 숫자만을 대상으로 하고 대소문자를 구분하지 않는다고 했다. 우선 주어진 문자열을 다 소문자로 바꾼다. 그리고 정규식으로 알파벳과 숫자가 아닌 불필요한 문자를 제거한다. 이제 for 문을 돌면서 왼쪽 인덱스의 값과 오른쪽 인덱스의 값이 같은지를 확인한다. 왼쪽은 한 칸씩 오른쪽으로, 오른쪽은 한 칸씩 왼쪽으로 이동하면서 비교한다. 만약 비교한 값이 다르면 팰린드롬이 아니고 모두 같으면 팰린드롬이다. 코드 class Solution { public boolean isPalindrome(String s) { s = s.toLowerCase(); St..

알고리즘 2021.06.22

[leetcode] 771. Jewels and Stones

문제 풀이 문자열(stones)에 원하는 문자(jewels)가 몇 개가 포함되어 있는 지를 세는 문제이다. 대소문자를 구분하고 인풋은 영어 문자만 들어온다. 코드 jewels 를 Set으로 만들고 각 stone마다 순회하면서 포함되어 있으면 카운트를 늘리는 방식으로 풀었다. class Solution { public int numJewelsInStones(String jewels, String stones) { Set jewel = jewels.chars() .mapToObj(e->(char)e) .collect(Collectors.toSet()); int result = 0; for(Character stone : stones.toCharArray()){ if(jewel.contains(stone)){..

알고리즘 2021.06.19

[leetcode] 704. Binary Search

문제 풀이 오름차순으로 정렬된 배열에 원하는 값을 찾는 문제이다. 문제 이름대로 이진 탐색을 이용해서 풀면 되는 문제다. 이진 탐색은 정렬된 리스트에서 값을 탐색하는 알고리즘이다. 아래와 같이 매번 탐색이 진행될 때마다 범위를 1/2씩 좁혀서 가면서 탐색한다. 그래서 시간 복잡도는 O(logN)이다. 배열에 원하는 값이 존재하면 원하는 값의 인덱스를 반환하고 아니면 -1을 반환하면 된다. 그래서 해당 문제의 종료 조건은 아래와 같이 구현할 수 있다. 원하는 값을 찾았을 때 return 원하는 값의 인덱스 왼쪽인덱스가 오른쪽 인덱스보다 큰 경우, 원하는 값이 배열에 없는 경우이다. return -1 코드 class Solution { public int search(int[] nums, int target..

알고리즘 2021.06.18

docker_airflow-webserver_1 exited with code 137

Airflow 공식문서 quick start를 따라 하던 중 실행이 안 되는 상황이 발생했다. docker-compose up 명령어를 입력하면 Airflow 실행은 안되고 아래와 같은 메시지가 무한 반복으로 출력되었다. airflow-webserver_1 | ____________ _____________ airflow-webserver_1 | ____ |__( )_________ __/__ /________ __ airflow-webserver_1 | ____ /| |_ /__ ___/_ /_ __ /_ __ \_ | /| / / airflow-webserver_1 | ___ ___ | / _ / _ __/ _ / / /_/ /_ |/ |/ / airflow-webserver_1 | _/_/ |_/_..

etc 2021.06.17

[Golang] Struct 필드 유효성 검사(validator)

Struct 필드의 유효성을 검증해보자. 유효성 검사를 하는 함수를 따로 구현해서 할 수도 있지만 validator 패키지를 이용해서 할 수 있다. validator 패키지는 gin 웹 프레임워크에서도 사용하는 패키지이다. 기본적으로 태그를 이용해서 사용한다. type User struct { FirstName string `validate:"required"` LastName string `validate:"required"` Age uint8 `validate:"gte=0,lte=130"` Email string `validate:"required,email"` FavouriteColor string `validate:"iscolor"` } required 에 해당하는 필드는 반드시 존재해야 하는 필..

Go 2021.06.12
반응형