알아가기 51

[Java] 중복 없는 해시 HashSet

HashSet HashSet은 Java 컬렉션 프레임워크에서 제공하는 클래스로, 중복된 요소를 허용하지 않는 집합(Set)을 구현한 것이다. HashSet은 해시 테이블(Hash Table)을 사용하여 요소를 저장하며, O(1)의 상수 시간 복잡도로 요소에 대한 삽입, 삭제, 검색 작업을 수행할 수 있다. HashSet 특징 new HashSet()는 기본 생성자를 호출하여 HashSet 객체를 생성한다. 는 제네릭(Generic) 타입을 나타내는 것으로, 여기서는 HashSet이 저장할 요소의 타입을 지정하는 역할을 한다. 예를 들어, new HashSet()는 String 요소를 저장하는 HashSet 객체를 생성한다. HashSet은 중복된 요소를 허용하지 않으므로, 요소의 중복 여부를 판단하기 위..

알아가기/Java 2023.05.28

[NodeJS] 프로젝트 관리 정보를 담고 있는 package.json

package.json은 Node.js 프로젝트에서 사용되는 중요한 파일이다. 이 파일은 프로젝트의 메타데이터와 의존성 관리에 필요한 정보를 포함한다. package.json은 프로젝트의 루트 디렉토리에 위치하며, 프로젝트 설정, 스크립트, 의존성 패키지 등을 기술하는 JSON(JavaScript Object Notation) 형식의 파일이다. npm init 을 통해 생성하고 필드를 지정할 수 있다. 다음은 기본적인 package.json 파일의 형태이다. { "name": "my-project", "version": "1.0.0", "description": "My Node.js project", "main": "index.js", "scripts": { "start": "node index.js",..

알아가기/NodeJS 2023.05.27

[MySQL] 로그인 비밀번호 바꾸기 ver. 8.0.31

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements 로컬 환경에서 Mac 과 Windows 를 번갈아 가며 MySQL 을 사용하는데 서로 비밀번호가 일치하지 않았다. 이 두 MySQL의 서로 다른 비밀번호를 일치시켜 주는 작업을 하게 되었고, 로컬에서만 교육적으로 사용하고 있기 때문에 최저 수준의 보안과 비밀번호 4 자리로 바꾸기로 하였다. 단순 검색을 통해 비밀번호 변경 명령어를 찾고, 4 자리로 바꾸려고 보니 ERROR 1819 (HY000): Your password does not satisfy the current policy requirements 에러를 출력하였다. MySQL 비밀번호 지정을 해둔..

알아가기/Java 2023.02.09

[Java] 맥북 Tomcat 설치 후 ./startup.sh 실행 시 권한 거부 해결

permission denied: ./startup.sh 맥북에 Tomcat 을 tar.gz 파일로 다운받아 압축을 해제 후 터미널로 bin 폴더를 찾아가 ./startup.sh 로 톰캣 서버를 실행하였다. 하지만 permission denied 가 뜨고 실행되지 않았다. 이를 해결하기 위해서 파일 권한을 변경해준다. 초기에는 문제 해결에 급급해 모두에게 최고 권한을 부여했는데 다시금 숨을 돌리며 확인하고 나서 Owner 빼고는 나머지 쓰기 권한을 제거하였다. chmod a+x startup.sh stackoverflow 에서 Tomcat 리눅스 질문으로 올라온 글이 있는데 위의 명령어로 쓰면 된다고 하였으나 sudo 를 추가하여도 나는 변경점이 없었다. chmod 755 startup.sh 그래서 추가..

알아가기/Java 2023.01.26

[Java] substring() 원하는 위치의 문자열을 가져오기

String class 와 substring() String class 로 생성된 문자열은 char 로 이루어진 단일 문자들의 배열이라고 볼 수 있다. 따라서, String 문자열에서 index 를 이용하면 필요한 위치의 연결된 문자들을 return 할 수 있다. 이와 같이 index 를 이용한 문자를 가져오기 위해서는 substring() 을 사용할 수 있다. 두 가지 타입 substring() 은 두 가지 형태의 parameter 를 입력할 수 있는데, 시작위치만 표기하여 시작부터 끝까지 데이터를 반환하거나 시작위치와 끝위치를 입력하여 선택 부분에 대한 문자를 반환할 수 있다. from start point // 시작 위치만 입력. public String substring (int start_ind..

알아가기/Java 2023.01.21

[Java] 공백 없는 연속된 숫자들 분리하여 배열에 입력받기 (split, toCharArray)

자바로 코딩 테스트 문제를 풀 때, 띄어쓰기로 공백이 형성된 여러 단일 숫자들의 데이터는 간단하게 배열로 작성이 가능하나, 공백 없이 한 번에 나열된 숫자들은 각각 띄워서 배열로 저장을 하려면 번거로운 작업이 필요하다. split() String[] strArr = sc.next().split(""); 첫째, 임시 배열 strArr 에 .split("") 으로 분할하여 입력받는다. numberArr[i][j] = Integer.parseInt(strArr[j]); 둘째, 입력받은 문자형 숫자를 하나씩 꺼내어 Integer.parseInt() 로 int 변환을 한다. 적용 코드 // using the split() package input_numbers; import java.util.Arrays; imp..

알아가기/Java 2023.01.12

[Python] 교집합, 합집합, 차집합, 대칭 차집합

파이썬에서 적용되는 네 가지 집합 기호를 확인해 본다. set 자료형으로 이루어진 a, b 집합의 원소가 각 집합 연산에 따른 예를 살펴보자. 교집합 set_a = set([1, 2, 3, 4, 5]) set_b = set([4, 5, 6, 7, 8]) result = set_a & set_b print(result) # {4, 5} 합집합 set_a = set([1, 2, 3, 4, 5]) set_b = set([4, 5, 6, 7, 8]) result = set_a | set_b print(result) # {1, 2, 3, 4, 5, 6, 7, 8} 차집합 set_a = set([1, 2, 3, 4, 5]) set_b = set([4, 5, 6, 7, 8]) result = set_a - set_b..

알아가기/Python 2023.01.05

[Java] ArrayList 모든 원소 출력하기

for-each & Arrays 반복 출력 실행을 통해 원소를 매번 출력하는 방법과 Arrays 를 통해 단번에 내부 원소를 확인하는 방법. for-each 를 이용한 출력. // for-each 를 이용한 출력. for (Object element : myList) { System.out.println(element); } Arrays 를 이용한 출력. // Arrays 를 이용한 출력. System.out.println(Arrays.deepToString(myList.toArray())); 실행 코드 import java.util.List; import java.util.ArrayList; import java.util.Arrays; public class MyClass { public static ..

알아가기/Java 2022.12.31

[Python] 리스트 안의 문자 붙여서 출력

리스트 출력 방법 리스트를 바로 print() 함수를 써서 출력하게 되면 각각의 value 는 빈칸으로 분리되어 출력된다. 이 출력이 필요할때는 편하긴 한데 빈칸없이 출력을 하려고 한다면 항상 찾아보게 된다. 이러한 필요성에 의해 기록을 남겨둔다. 간단하게 프린트 할 수 있는 두 가지 방법으로, print(*LIST, sep="") print("".join(LIST)) 가 있다. 이때, LIST 는 문자형 리스트 이다. 숫자, 문자 리스트에 대한 간단한 예시 입력 코드 ## integer number_ls = [1, 2, 3, 4, 5] print(number_ls) print(*number_ls) print(*number_ls, sep="") # print("".join(number_ls)) # Typ..

알아가기/Python 2022.12.31

[Java] 파일 상대경로 설정 (Relative Path on Mac)

맥 환경에서 PrintWriter 을 이용하여 절대경로와 상대경로에 파일을 생성하고 그 경로의 차이를 예시로 확인한다. 절대경로 File f = new File("/Users/apple/java/01_test/newFile01.txt"); 기본적으로 맥에서 절대경로는 Users 에서 부터 시작된다. 윈도우로 보자면 C: 맥에서 절대경로로 파일에 접근하려면 "/Users/{account name}/files/01_test/newFile01.txt" 형식으로 작성해야 한다. 절대경로는 Finder 에서 Get info 등을 이용하여 나타나는 경로를 복사 붙여넣기 하면 간단히 해결된다. 이 절대경로를 이용하여 "newFile01.txt" 파일을 생성하였다. 프로젝트 위치 File f = new File("ne..

알아가기/Java 2022.12.27