try - with - resources 는 try(..) 문에서 선언된 객체들에 대해서 try가 종료될 때 자동으로 자원을 해제해주는 기능이다. 주로 외부 자원인 파일 관련 객체와 socket Handler 객체와 같은 자원들은 try - catch - finally 문을 사용하여 마지막에 다 사용한 자원을 해제한다. AutoCloseable은 try에 선언된 객체가 AutoCloseable을 구현했더라면 Java는 try구문이 종료될 때 객체의 close() 메소드를 호출해 준다. Java6에서 리소스 사용 및 해제하는 방법을 한번 살펴보고, try-with-resources로 동일한 코드를 리팩토링해보자. 1. AutoCloseable 사용 방법 다음은 try - catch - finally 를 사..
🧑🏻💻 Fac si facis
상수를 선언할 때 private final로 선언하면 되는데 굳이 private static final 선언하는 이유가 뭘까 결론부터 말하자면 초기화 한 값을 끝까지 유지하기 위해서이다. (값을 불변으로 만들기 위해) 만약 private final 로 선언한다면 직접적으로 값을 참조할 수 없지만 생성자를 통해 값을 참조할 수 있다. 하지만 private static final 로 선언한다면 생성자를 통해 값을 참조할 수 없다. (이때 private static final 변수는 반드시 초기화되어 있어야 한다.) 절대 해당 값을 바꾸지 않겠다는 표현과 유사하다. private static final 을 선언한 변수를 사용하면 재할당하지 못하며, 메모리가 한번 올라가면 같은 값을 클래스 내부의 전체 필드, ..
제대로 코드 확인을 하지 않고 Commit 후 Push하여 Pull Request를 하게 되면 PR 수정을 어떻게 해야 할지 모를 때가 있다. 구글링을 통해 “PR을 Closed 하고 다시 보내기”는 찾을 수 있지만 “다시 PR을 진행하지 않으면서 수정한 부분만 자동으로 PR에 반영되는 법”은 찾기가 어려웠다. 해결방법은 다음과 같다. 1. Review 받은 내용 수정 후 git add 2. Git commit —amend를 통해 최신 commit 덮어 쓰기 3. Git push -f origin {branch-name} 위 과정을 통해 이미 올라간 PR에 수정한 부분만 자동으로 반영되도록 할 수 있다. 즉 다시 PR을 진행하지 않아도 된다.
이름 그대로 두 가지 포인터를 사용하여 문자열이나 배열(또는 리스트)에서 원하는 값을 찾거나 반복문을 써야 할 때 쓰는 방식 투포인터 알고리즘은 Two Pointer Algorithm 또는 Sliding Window라고 부른다. 1차원 배열이 있고, 이 배열에서 각자 다른 원소를 가리키고 있는 2개의 포인터를 조작해가면서 원하는 것을 얻는 형태이다. 코딩 테스트 문제를 풀다 완전 탐색으로 해결하다보면 시간 초과가 나는 문제가 종종 있다. 이러한 경우 투 포인터를 사용하면 메모리와 시간 효율성을 높일 수 있다. 포인터는 크게 두가지 방식으로 쓰인다. 앞에서 시작하는 포인터와 끝에서 시작하는 포인터가 만나는 형식 또는 빠른 포인터(fast runner)가 느린 포인터(slow runner)보다 앞서는 형식 ..
1️⃣ 문자열 입력 받기단순하게 input 을 사용하면 문자열을 입력받습니다.>>> a = input()>>> type(a)>>> print(a)abcdabcd 2️⃣ 숫자 입력 받기Python 내장함수 int( ) 를 통해 input 값을 형 변환 시켜주어 숫자를 입력받습니다.>>> a = int(input())>>> print(type(a))>>> print(a)12341234 3️⃣ split 을 통한 입력 받기Python에서 제공하는 split 함수를 이용하여 입력받습니다.문자열.split ( [분류조건], [나눌횟수] ) 를 통해 list 로 return 합니다.split 파라미터를 기본으로 하면 공백(띄어쓰기 탭 etc)을 기반으로 분리하여 return 합니다.>>> str = 'Codi..