Languages

강의 중에 try-catch-finally 구문 말고도 가독성이 좋은 try-with-resources 구문이 있다는 것을 배웠다.그래서 프로젝트 중 사용해 보았는데,팀원의 PR 코드 리뷰에 이런 질문을 했다. 따로 빼면 안되지 않나 ..? 라는 생각만 들 뿐 사실 확신이 없었다..답변을 하기 위해 이것 저것 찾아 보고 답변은 했지만,이 기회에 try-with-resources 구문을 제대로 정리하고 가는 게 좋을 것 같아서 정리하려 한다. 자주 참고하는 inpa님의 티스토리를 기반으로 작성하였다. Java Resource의 예외 처리보통 resource란 외부의 데이터(DB, Network, File)를 일컫는다.이런 resource들은 자바 내부에 위치한 요소들이 아니기 때문에, 이러한 프로세스 외부..
킹이썬으로 코테 준비 시작했지만..어차피 자바로 개발해야 되는거 맘 딱 먹고 바꾸기로 했다. 그런데 입력 받는 것부터 난관 봉착. 옆에서 고수들이 말하기를 "Scanner 말고 BufferedReader 써야 된다." 스캐너 밖에 안 써본 나는,,이 둘의 차이를 공부하고 잘 사용해보기로 했다. 자바를 ~~ 자바라 !!! 자바로 알고리즘 문제를 풀 때 Scanner를 사용하면 시간 초과가 나는 경우가 있는데,이때 BufferedReader를 사용해야 한다. ScannerScanner 클래스는 입력받은 데이터(바이트)를 다양한 타입으로 변환하여 반환하는 클래스이다. 간단하게 기본형과 String 타입을 정규표현식으로 사용해 파싱할 수 있다. Scanner의 특징- java.util 패키지에 속한다. (jav..
import sysinput = sys.stdin.readlineN = int(input())A = []B = []A = sorted(list(map(int, input().split())))B = sorted(list(map(int, input().split())))B.reverse()result = [i*j for i, j in zip(A, B)]total_min = sum(result)print(total_min) 내가 작성한 코드는 이렇다..(잘 못하니까 참고는 다른 분꺼 .. 하시길 ..) 내가 생각한 로직은 이렇다.두 번째, 세 번째 줄에 각각 정수 배열 A와 B의 값이 스페이스로 구분되어 입력되면이를 받아 리스트에 저장한다. split()을 이용해서 input()을 스페이스를 기준으로 값을 ..
얕은 복사(Shallow Copy)는 '주소 값'을 복사한다는 의미이며,깊은 복사(Deep Copy)는 '실제 값'을 새로운 메모리 공간에 복사한다는 의미이다. 얕은 복사얕은 복사의 경우 주소 값을 복사하기 때문에 참조하고 있는 실제값이 같다.따라서 복사한 객체가 변경된다면 기존의 객체도 변경된다.동일한 주소를 참조하고 있기 때문이다.int[] arrData1 = {1,2,3};int[] arrData2 = arrData; arrData2[0] = 10;System.out.println(arrData1[0]); -> 10  깊은 복사깊은 복사의 경우 복사하려는 원본 객체에 대해인스턴스화할 수 있는 클래스 내부의 클래스 변수(static)와 메서드(static)뿐 아니라 인스턴스 값 모두를 복사하여원본 ..
자바에서 문자열은 String이라는 타입을 사용하는데,String은 데이터 타입이 아니라 클래스이다. (기본형이 아닌 참조형 변수로 분류) 그러나 String은 참조형 타입이지만, 기본형처럼 값을 직접 할당해서 사용할 수 있다. 즉, String에 값을 할당하는 방법은 2가지가 존재한다. String str = new String("JAVA"); // 생성자를 통한 참조형String str = "JAVA"; // 기본 자료형처럼 직접 할당 후자와 같이 data를 할당 시 JVM 메모리 상수풀이라는 곳에 "JAVA" 라는 값을 str에 할당한다. 따라서String str01 = "JAVA";String str02 = "JAVA";로 모두 JAVA라는 값을 할당 받았을 때,같은 주소 값을 가지고 있다. st..
컴파일러와 인터프리터컴파일러와 인터프리터 모두 high-level language를 machine language로 번역한다. 1. 컴파일 언어컴파일 언어는 내가 작성한 소스 코드 전체를 기계어로 번역한 뒤, 이 번역된 코드를 한 번에 실행하는 두 단계를 거쳐 진행된다. 즉, 번역과 실행이 완전이 따로 이루어진다.번역은 컴파일러를 통해 수행되고, 대표적인 예시로는 C, C++이 있다. - 특징1. 컴파일은 오래 걸릴 수 있다.2. 이미 컴파일 된 프로그램이라면 빠른 속도로 실행이 가능하다.3. OS 이식성이 낮다. 다른 OS에서 실행하려면 그에 맞는 컴파일러로 다시 컴파일 해주어야 한다. 2. 인터프리터 언어인터프리터 언어는 소스 코드를 한 줄씩, 번역과 실행을 동시에 진행한다. 번역은 인터프리터를 통해..
You are given a 0-indexed integer array nums of even length and there is also an empty array arr. Alice and Bob decided to play a game where in every round Alice and Bob will do one move. The rules of the game are as follows:Every round, first Alice will remove the minimum element from nums, and then Bob does the same.Now, first Bob will append the removed element in the array arr, and then Alic..
Given a string s containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid.An input string is valid if:Open brackets must be closed by the same type of brackets.Open brackets must be closed in the correct order.Every close bracket has a corresponding open bracket of the same type.Example 1:Input: s = "()"Output: trueExample 2:Input: s = "()[]{}"Output..
효딩
'Languages' 카테고리의 글 목록