자바/++16 자바 n진법 <-> 10진법 바꾸는법 n진법 -> 10진법 Integer.parseInt(값,진법) 반환값은 Int이다. String num = "01101"; // 2진법 기준 값 = 13 //해당 문자열의 숫자값을 도출 -> 1101 System.out.println(Integer.parseInt(num)); //전달 인자가 2진법으로 표현됬음을 알리고, 10진법으로 바꿔달라는 요청 // 01101을 2진수 보고 10진법으로 바꿨을시 값 -> 13 System.out.println(Integer.parseInt(num,2)); // 01101을 4진수로 보고 10진법으로 바꿨을시 값 -> 81 System.out.println(Integer.parseInt(num, 4)); // 01101을 8진수로 보고 10진법으로 바꿨을시 값 -> .. 자바/++ 2024. 1. 18. repeat로 문자열 반복해서 이어붙이기 https://www.javastring.net/java/string/java-string-repeat-method Java String repeat() Method Java String repeat() method returns a new string whose value is the concatenation of this string given number of times. www.javastring.net public static void main(String[] args) throws NumberFormatException, IOException { String a = "hello"; System.out.println(a.repeat(0)); //빈값 System.out.println(a.repe.. 자바/++ 2023. 5. 17. [Java] 두 배열 비교하기 배열을 비교할때는 Arrays.equals() 메소드를 사용한다. static void solve() throws IOException { int[] a = {1, 2, 3,}; int[] b = {1, 2, 3,}; if (a == b) { bw.write("동일한 배열입니다."); } else { bw.write("동일하지않습니다."); } } ==로 비교하게되면 원하는 결과가 나오지않는다. ==연산자는 각 배열의 주소값을 비교하기 때문이다. Arrays.equals()를 사용하면 원하는 결과가 나온다. static void solve() throws IOException { int[] a = {1, 2, 3,}; int[] b = {1, 2, 3,}; if (Arrays.equals(a,b)) { .. 자바/++ 2022. 12. 27. [Java] BigInteger (큰 숫자 다루기) BigInteger를 사용해야 하는 이유 int나 long과 같은 자료의 범위가 다음과 같다. 저 범위를 넘어서면 모두 0으로 출력된다. 알고리즘 문제를 풀다 팩토리얼 문제나, 조합 문제에서 큰 수를 다뤄야 할때가 있다. (최악의 경우에 대비하여) 동적프로그래밍으로 해결해도 되지만 BigInteger의 사용도 답일때가 있다. 또는 프로그램 개발에서 특히 돈과 관련된 개발에서는 항상 최악의 상황을 생각해야하므로 무한의 정수가 들어갈 수 있는 BigInteger 클래스를 활용하는것이 좋다. BigInteger는 문자열 형태로 이루어져 있어 숫자의 범위가 무한하기 때문에 어떤 숫자라도 담을 수 있다. BigInteger 사용법 BigInteger 생성 및 초기화 BigInteger를 초기화하려면 문자열을 이용.. 자바/++ 2022. 12. 14. [Java] compareTo() 자바 Wrapper클래스에서 사용 할 수 있는 compareTo() 메소드 - int compareTo(NumberSubClass referenceName) - int compareTo(String anotherString) 숫자비교 Byte,Integer... 등에서 compareTo()를 사용해서 숫자비교를 한다면 자기자신.compareTo() 의 결과로 자기자신이 더크다면 1 자기자신과 크기가 같다면 0 자기자신이 더 작다면 -1 의 결과값을 리턴해준다. 왜이렇게 리턴해주는가 -> 자기 자신이 들어온 값보다 ~더 크다!와 같이 생각하면 편하다 [Java] Comparator , Comparable , 익명객체(클래스) Comparable, Comparator는 모두 인터페이스이다. 인터페이스 이므로.. 자바/++ 2022. 12. 5. [Java] 람다 [미완성] 람다 표현식 람다식은 익명함수를 지칭하는 용어이다. 람다식을 사용하기 위해서는 함수형 인터페이스에 접근해서 사용해야한다. 람다식 즉 익명함수를 값으로 사용 할 수도 있으며 파라미터로 전달 및 변수에 대입 하기와 같은 연산들이 가능하다. [Java] Comparator , Comparable , 익명객체(클래스) Comparable, Comparator는 모두 인터페이스이다. 인터페이스 이므로 Comparable, Comparator를 사용하고자 한다면 인터페이스내에 선언된 메소드를 구현해야한다! Comparable 내부에는 compareTo(T o)라는 메소드가 keeeeeepgoing.tistory.com 람다의 표현식 1. 람다는 매개변수의 자료형을 생략할 수 있다, 생략 안하고 적어도 된다. 2. .. 자바/++ 2022. 12. 5. [Java] Comparator , Comparable , 익명객체(클래스) Comparable, Comparator는 모두 인터페이스이다. 인터페이스 이므로 Comparable, Comparator를 사용하고자 한다면 인터페이스내에 선언된 메소드를 구현해야한다! Comparable 내부에는 compareTo(T o)라는 메소드가 있고, Comparable을 사용하고자 한다면 compareTo 메소드를 재정의(오버라이드/구현)을 해줘야한다. Comparator 내부에는 compare(T o1,T o2)라는 메소드가 있다. Comparator을 사용하고자 한다면 compare 메소드를 재정의(오버라이드/구현)을 해줘야한다. 인터페이스 관련 의문해결 Comparator (Java Platform SE 8 ) Compares its two arguments for order. Retu.. 자바/++ 2022. 12. 4. [Java] Collection (컬렉션) 정리 컬렉션 프레임워크(collection framework) 자바에서 컬렉션 프레임워크(collection framework)란 다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합을 의미한다. 즉, 데이터를 저장하는 자료 구조와 데이터를 처리하는 알고리즘을 구조화하여 클래스로 구현해 놓은 것 이러한 컬렉션 프레임워크는 자바의 인터페이스(interface)를 사용하여 구현된다. 컬렉션 인터페이스 Collection 인터페이스는 List,Set,Queqe로 크게 3가지 상위 인터페이스로 분류 할 수 있다. List,Queue,Set은 Collection 인터페이스를 extends(확장)한 인터페이스이다. Map은 Collection 인터페이스를 상속받고 있지 않지만 Colle.. 자바/++ 2022. 12. 4. [Java] 나눗셈 나눗셈을 할때, 반올림을 할때 형변환을 주의해야한다. bw.write(-9/5+"\n"); 의 결과는 -1이다. 정수와 정수의 나눗셈은 정수로 나오기 마련이다. double answer = -9/5; answer에는 어떤값이 담겼을까? -9/5의 결과가 -1이므로 결국 answer의 담긴값은 -1.0이 된다. 나눗셈의 결과로 소숫점을 얻고싶다면 형변환을 해야한다. (float) 또는 (double) 을 분모 또는 분자에 붙여주거나 bw.write((double)-9/5+"\n"); bw.write((float)-9/5+"\n"); 결과 : -1.8 정수.0 과같이 실수화 하면된다. double answer = -9 / 5.0; System.out.println("answer = " + answer); 반.. 자바/++ 2022. 12. 4. [Java] Split 메소드 문자열 자르기 String[] split(String regex) split함수는 입력받은 정규표현식 또는 특정문자를 기준으로 문자열을 나누어 배열에 저장하여 리턴한다. 정규표현식 개념 -> https://hbase.tistory.com/160 String temp = "010-1234-5789-1111"; String[] result = temp.split("-"); for (String currentString : result) { bw.write(currentString+"\n"); } 문자열을 "-"를 기준으로 나누고 나눈 문자열들을 배열에 넣어서 리턴해준다. 문자열배열을 출력해봤을때 저장된 값들은 다음과 같다. String[] split(String regex,int limit) 기준 문자말고 받을 수 있는 .. 자바/++ 2022. 12. 3. Collections.sort() 와 Arrays.sort() 시간복잡도, 사용법 Collections.sort() 시간복잡도 평균 : O(NlogN) 최악 : O(NlogN) 내부 알고리즘 : Timsort(삽입+병합 정렬) Arrays.sort() 시간복잡도 평균 : O(NlogN) 최악 : O(N^2) 내부 알고리즘 : DualPivotQuicksort Collections.sort() 사용법 public static void main(String[] args)throws IOException { List numbers = new ArrayList(); numbers.add(5); numbers.add(2); numbers.add(1); numbers.add(4); Collections.sort(numbers); bw.write(numbers.toString()); bw.flus.. 자바/++ 2022. 12. 3. [Java] BufferedReader, BufferedWriter Scanner보다 빠른 입출력 BufferedReader, BufferedWriter 버퍼를 통해서 입출력을 전달해준다. BufferedReader, BufferedWriter가 Scanner보다 더 효율이 좋은 이유는 버퍼를 이용해서 그렇다고한다. 누를때마다 정보를 이동시키는것보다는 중간에 메모리 버퍼를 둬서 데이터를 묶어서 전송시키는것이 효율적이고 빠르다고 한다. 흙을 퍼 나를때 삽으로 한번뜨고 옮기는것보다는 수레에 한번에 담아서 옮기는것이 더 효율적이고 빠른것처럼. IOException BufferedReader나 BufferedWriter의 메소드를 사용하려면 사용할곳에서 try catch를 두르거나 해당 클래스의 throws IOException처리를 해줘야한다. public static voi.. 자바/++ 2022. 12. 3. 이전 1 2 다음