프로그래밍 언어/Java
-
[Java] Swap 함수 구현 (Call-by-value)프로그래밍 언어/Java 2021. 10. 15. 18:26
# Call-by-Reference 의 Swap 함수 객체나 배열이 인자로 들어왔을 때, 주소값이 복사되므로 멤버(배열원소)에 직접 접근하여 값을 바꾸면 바꿔진다. 따라서, 일반적인 temp 를 두는 방식으로 값을 교환하면 된다. # Call-by-value 의 Swap 함수 primitive type(int, float, double, ...) 의 값을 바꿔야 하는 경우 Wrapper Class 또한 데이터를 담고있는 멤버에 직접접근 권한이 없기에 해당 경우로 취급하여 주소값 자체 값으로 취급하여 바꿔주면 된다. # 구현 코드 /* Call-by-Value */ public class SwapTest1 { public static int swap(int a, int b){ return a; } publ..
-
JAVA) 백준으로 공부하는 자바일기 (Dynamic Programming)프로그래밍 언어/Java 2021. 10. 8. 01:50
# 1로 만들기 (문제 1463번) 1. 주석친 코드가 DP 사용 (본래 코드는 분기한정사용) 2. DP사용한게 조건이 하나 더걸리니까 속도는 빨라졌다. (당연히 메모리는 늘었지만) 3. 문제를 풀기 위한 코드지, 1로 만들때 사용한 경로는 저장하지 않았기에, 경로출력문제라면 큐를 쓰자 import java.util.*; public class Main { static int temp = 100_000; static int[] visited = new int[100_000_1]; public static int method1(int n){ if(n%3==0) return n/3; return 0; } public static int method2(int n){ if(n%2==0) return n/2; r..
-
[Java] 프로그래머스로 다시 공부하는 자바일기 (프로그래머스 레벨2)프로그래밍 언어/Java 2021. 10. 5. 20:55
# 문자열 압축 * test input case 가 최소일 때와 최대일 때를 항상 고려하자! - 작성한 코드가 최소일 경우에 동일하게 돌아가는 것인가를 항상 체크하자! - 작성한 코드가 최대일 경우에 메모리 문제를 일으키지 않는지 항상 생각하자! * 코딩테스트는 결과물을 만드는 것이 아니다. 리턴값만 맞으면 된다. - 불필요한 값을 저장하지말자! 모든 것을 로그로 남기는 게 목적이 아니다! - 임시저장을 위한 용도라면, List 객체보단 Stack 객체를 사용하자. * 프로그래머스에서 제공하는 스켈톤코드의 answer 를 항상 다시 초기화하자! - 뼈대코드를 건들지 말라는 법은 없다. 1. Long to Int - int num = Long.valueOf(Long_Value).intValue(); imp..
-
[Java] 깊은복사(deepcopy)프로그래밍 언어/Java 2021. 10. 4. 20:04
1. 원시타입의 1차원배열 # clone() 메서드 - 배열안의 값을 복사함 - 따라서, 1차원배열은 deepcopy 가능하나 2차원배열이나 객체배열은 사용 불가능 (2차원배열은 사실상 1차원배열이고, element는 각 1차원배열의 주소값이니, 배열안의 값을 복사하면 주소값을 복사하는 셈) (1차원 객체배열도 같은원리) 2. 원시타입 -> 오브젝트 타입 # Stream을 이용한 복사 - Java 8 이후 버전 - Arrays.stream(원시타입배열).boxed().collect(Colletors.to구현된원하는 자료형()); # for 문을 이용한 복사 - 그냥 for 문으로 복사... 3. 오브젝트 타입 -> 오브젝트 타입 # 생성자를 이용한 deepcopy - ArrayList copiedArrL..
-
[Java] 프로그래머스로 다시 공부하는 자바일기 (프로그래머스 레벨1)프로그래밍 언어/Java 2021. 10. 4. 16:30
* 리액트 해보겠다고 JS 랑 JSX 를 주구장창 사용하다보니 헷갈리는 자바문법을 개인적으로 다시 정리하기 위한 글입니다. * 네이버코테는 구글링이나 IDLE 금지라던데.... 헝헝엏엏ㅇㄹㄱ. * 다 포기하고 C++이나 파이썬으로 코테를 보고싶지만.... 현업을 위한 자바숙련도 기르기 가즈아ㅏㅏㅏㅏㅏㅏㅏ # x만큼 간격이 있는 n개의 숫자 1. 가변배열 선언 - new 자료형[갯수] 2. 형변환 - 작은 타입의 데이터를 큰 타입의 변수에 할당할때는 자동변환된다 ex) int a = 5; long b= a; - 다른 타입간의 연산은 큰 타입으로 변환된 후 연산된다. ex) int a=5, i=0; (long)a*(i+1) int 2. Wrapper 클래스의 length - 멤버변수 length가 아닌 메소..
-
Mac) Homebrew 로 Tomcat 서버 설치, 실행, 경로프로그래밍 언어/Java 2021. 8. 19. 15:01
# 설치 1. 터미널에 brew update - 업데이트를 해줘야 최신버전을 깔 수 있어요 2. 터미널에 brew search tomcat - 이전 버전은 @가 붙은채로 나오고 @가 없는 순수 tomcat은 최신버전 3. 터미널에 brew install tomcat (최신버전 설치) - 위의 search 의 결과중 하나를 선택하시면 됩니다. (버전이 다를뿐) # 경로 /usr/local/Cellar (Homebrew로 설치했을 경우) 무엇으로 어디에 설치 했는지 기억이 안난다 => find / -name tomcat 을 터미널에 입력 터미널에 cd /usr/local/Cellar 입력 후, ls 를 입력하면 tomcat 파일이 있는 것을 알 수 있다. 탐색기(Finder)의 Go -> Go to Fold..
-
Mac) 이클립스, 톰캣 연동프로그래밍 언어/Java 2021. 8. 19. 14:52
# 왼쪽상단 Eclipse -> Preference -> 'Runtime Environment' 검색 -> add -> 버전선택 -> 버전에맞는 톰캣설치경로 * homebrew 로 설치시, 경로는 /usr/local/Cellar/tomcat (tomcat파일안에 설치한 버전의 폴더가 있으며, 본인의 경우 9.0.36, 그 안에 libexec 파일과 링크시켜줘야됨 ) # 설치경로 찾기 https://developer-ping9.tistory.com/143 Mac) Homebrew 로 Tomcat 서버 설치, 실행, 경로 # 설치 1. 터미널에 brew update - 업데이트를 해줘야 최신버전을 깔 수 있어요 2. 터미널에 brew search tomcat - 이전 버전은 @가 붙은채로 나오고 @가 없는 ..