[Java] StringUtils의 hasLength()와 hasText()
·
Language/Java
프로젝트 진행 중 intellij에서 StringUtils.isEmpty()를 사용하는 곳에 노란색 경고와 hasLength(String)나 hasText(String)를 대신 사용하라는 메시지가 나와서 두 메서드의 차이점을 찾아봤다.StringUtils스프링 프레임워크에서 제공하는 문자열 처리 유틸리티 클래스org.springframework.util 패키지에 포함되어 있으며, 문자열 검사, 변환, 조작, 비교 등의 문자열 처리 관련 메서드를 가진 유틸리티 클래스이다.isEmpty()는 5.3 버전부터 deperecated되기 때문에 hasLength()나 hasText() 사용을 권장한다.두 메서드는 비슷한 역할을 하지만 코드를 보면 차이점이 있다.빈 문자열인지 확인이 필요할 경우 hasText()를..
[프로그래머스] 연속된 부분 수열의 합
·
PS/프로그래머스
링크 문제 설명 def solution(sequence: List[int], k: int) -> List[int]: ... 주어진 비내림차순 배열 sequence에 대해 합이 k인 부분 배열 중 가장 길이가 짧은 구간을 구해 반환한다. 비내림차순 : 인접한 두 수가 같을 수도 있는 오름차순 sequence k result [1, 2, 3, 4, 5] 7 [2, 3] [1, 1, 1, 2, 3, 4, 5] 5 [6, 6] [2, 2, 2, 2, 2] 6 [0, 2] 제한사항 5 ≤ sequence의 길이 ≤ 1,000,000 1 ≤ sequence의 원소 ≤ 1,000 sequence는 비내림차순으로 정렬되어 있습니다. 5 ≤ k ≤ 1,000,000,000 k는 항상 sequence의 부분 수열로 만들 ..
[프로그래머스] 달리기 경주
·
PS/프로그래머스
링크 문제 설명 def solution(players: List[str], callings: List[str]) -> List[str]: ... callings는 players의 원소로만 이루어져 있다. callings의 원소를 players에서 찾아 i - 1 위치의 원소와 순서를 서로 바꿔준다. 모든 callings의 원소에 대해 순서를 바꿔준 결과를 반환하면 된다. 제한사항 5 ≤ players의 길이 ≤ 50,000 players[i]는 i번째 선수의 이름을 의미합니다. players의 원소들은 알파벳 소문자로만 이루어져 있습니다. players에는 중복된 값이 들어가 있지 않습니다. 3 ≤ players[i]의 길이 ≤ 10 2 ≤ callings의 길이 ≤ 1,000,000 callings는 ..
[딥러닝] MNIST
·
딥러닝
MNIST는 손으로 쓴 숫자 이미지 데이터셋으로, 60,000개의 학습 데이터와 10,000개의 테스트 데이터로 이루어져 있다. 각 이미지는 28x28 픽셀 크기의 흑백 이미지(28x28x1)이며 0부터 9까지의 정수 레이블을 가진다. 텐서플로의 패키지에 포함되어 있기 바로 사용할 수 있다. from tensorflow.keras.datasets import mnist (X_train, y_train), (X_test, y_test) = mnist.load_data() 아래 코드를 실행하면 실제 데이터를 확인해볼 수 있다. import matplotlib.pyplot as plt plt.figure(figsize = (20, 4)) for idx in range(5): label = y_train[idx..
[Python] pandas
·
Language/Python
판다스는 파이썬에서 데이터 처리를 위해 사용하는 라이브러리이다. 일반적으로 행과 열로 구성된 2차원 데이터를 다룬다. DataFrame은 여러 개의 행과 열로 이루어진 2차원 데이터를 담는 데이터 구조체이다. 데이터셋은 kaggle의 Titanic - Machine Learning from Disaster의 데이터셋 중 train.csv 파일을 사용했다. import pandas as pd pandas 모듈을 pd라는 이름으로 가져온다. df = pd.read_csv("train.csv") train.csv 파일을 읽어 Dataframe으로 로딩한다. df.head() 데이터의 일부를 직접 확인할 수 있다. df.info() RangeIndex: 891 entries, 0 to 890 Data colum..
[알고리즘] 정렬(1)
·
PS
정렬은 n개의 원소를 순서대로 배열하는 것으로 프로그래밍을 할 때 많이 사용되는 알고리즘 중 하나이다. 데이터가 정렬되어 있으면 검색, 비교, 분석이 훨씬 쉬워지는 등 이점이 있다. 정렬 알고리즘에는 다양한 종류가 있으며 이번 포스트에서 대표적인 정렬 알고리즘인 선택 정렬, 버블 정렬, 삽입 정렬, 퀵 정렬, 병합 정렬에 대해 알아보려한다. 1. 선택 정렬 (Selection Sort) 선택 정렬은 가장 간단한 정렬 알고리즘 중 하나이다. 배열에서 최솟값을 찾아 선택하여 배열의 첫 번째 원소와 교체하고, 그 다음 최솟값을 찾아 두 번째 원소와 교체한다. 이를 배열 전체를 순회하며 수행하면 정렬된 배열이 완성된다. 배열에서 최솟값을 찾아 선택하는 과정 때문에 이름이 선택 정렬인 것 같다. 이를 파이썬 코드..
[프로그래머스] 덧칠하기
·
PS/프로그래머스
링크 문제 설명 def solution(n: int, m: int, section: list) -> int: ... n은 벽의 길이, m은 롤러의길이, section은 칠해야할 구역의 번호가 담긴 리스트를 나타낸다. 롤러를 덧칠하기 위한 최소 횟수를 구하는 문제이다. 제한사항 1 ≤ m ≤ n ≤ 100,000 1 ≤ section의 길이 ≤ n 1 ≤ section의 원소 ≤ n section의 원소는 페인트를 다시 칠해야 하는 구역의 번호입니다. section에서 같은 원소가 두 번 이상 나타나지 않습니다. section의 원소는 오름차순으로 정렬되어 있습니다. 풀이 빈 벽을 만나면 롤러로 m만큼 색칠해나간다고 생각하면 된다. 즉 section을 순회하며 색칠을 시작한 벽의 번호 + m - 1보다 큰..
로컬 개발환경에서 https 사용
·
개발
ubuntu에서 웹 개발 시 localhost를 https로 접속할 수 있게 하는 방법을 정리했다.mkcert 설치링크의 os별 설치법 참고필요 패키지 설치$ sudo apt install libnss3-toolsmkcert 설치$ curl -JLO "https://dl.filippo.io/mkcert/latest?for=linux/amd64"$ chmod +x mkcert-v*-linux-amd64$ sudo cp mkcert-v*-linux-amd64 /usr/local/bin/mkcert로컬 CA에 mkcert 추가$ mkcert -install그러면 로컬 인증 기관(CA)이 생성됩니다. mkcert 생성 로컬 CA는 기기에서 로컬로만 신뢰할 수 있습니다.인증서 생성인증서를 생성할 디렉터리로 이동 ..