Deep_Dev
[JAVA] List : LinkedList
📚 코딩테스트/JAVA 2022. 10. 26. 21:55

나중에 정리 예정

article thumbnail
[JAVA] List : ArrayList
📚 코딩테스트/JAVA 2022. 10. 26. 20:53

💡ArrayList ArrayList는 인터페이스를 상속받은 클래스로 크기가 가변적으로 변하는 선형리스트이다. 일반적인 배열과 같은 순차리스트이며 인덱스로 내부의 객체를 관리한다는점이 유사하지만 한번 생성되면 크기가 변하지 않는 배열과는 달리 ArrayList는 객체들이 추가되어 저장 용량(capacity)을 초과한다면 자동으로 부족한 크기만큼 저장용량(capacity)가 늘어난다. ArrayList에서 특정 인덱스의 객체를 제거하게 되면, 제거한 객체의 인덱스부터 마지막 인덱스까지 모두 앞으로 1칸씩 앞으로 이동한다. 객체를 추가하게 되면 1칸씩 뒤로 이동하게 된다. 인덱스 값을 유지하기 위해서 추가/삭제 시 전체 객체가 위치를 이동한다. 따라서 잦은 원소의 이동, 삭제가 발생할 경우 ArrayList..

article thumbnail
[프로그래머스][JAVA]Level 1 : 최소 직사각형

문제 설명 명함 지갑을 만드는 회사에서 지갑의 크기를 정하려고 합니다. 다양한 모양과 크기의 명함들을 모두 수납할 수 있으면서, 작아서 들고 다니기 편한 지갑을 만들어야 합니다. 이러한 요건을 만족하는 지갑을 만들기 위해 디자인팀은 모든 명함의 가로 길이와 세로 길이를 조사했습니다. 아래 표는 4가지 명함의 가로 길이와 세로 길이를 나타냅니다. 명함 번호 가로 길이 세로 길이 1 60 50 2 30 70 3 60 30 4 80 40 가장 긴 가로 길이와 세로 길이가 각각 80, 70이기 때문에 80(가로) x 70(세로) 크기의 지갑을 만들면 모든 명함들을 수납할 수 있습니다. 하지만 2번 명함을 가로로 눕혀 수납한다면 80(가로) x 50(세로) 크기의 지갑으로 모든 명함들을 수납할 수 있습니다. 이때..

article thumbnail
[프로그래머스][JAVA]Level 0 : 진료순서 정하기

문제 설명 외과의사 머쓱이는 응급실에 온 환자의 응급도를 기준으로 진료 순서를 정하려고 합니다. 정수 배열 emergency가 매개변수로 주어질 때 응급도가 높은 순서대로 진료 순서를 정한 배열을 return하도록 solution 함수를 완성해주세요. 제한사항 중복된 원소는 없습니다. 1 ≤ emergency의 길이 ≤ 10 1 ≤ emergency의 원소 ≤ 100 입출력 예 emergency result [3, 76, 24] [3, 1, 2] [1, 2, 3, 4, 5, 6, 7] [7, 6, 5, 4, 3, 2, 1] [30, 10, 23, 6, 100] [2, 4, 3, 5, 1] emergency를 복사하여 같은 temp배열을 생성하고, 기존의 emergency를 정렬함 ( temp를 정렬해도 ..

article thumbnail
[프로그래머스][JAVA]Level 0 : 한 번만 등장한 문자

문제 설명 문자열 s가 매개변수로 주어집니다. s에서 한 번만 등장하는 문자를 사전 순으로 정렬한 문자열을 return 하도록 solution 함수를 완성해보세요. 한 번만 등장하는 문자가 없을 경우 빈 문자열을 return 합니다. 제한사항 0 한번 등장한게 아닌 것 ) 이후, 배열 index를 돌면서 값이 1인것 ( = 한 번만 등장한것 )을 answer에 더해줌. alpha[]가 이미 알파벳순서대로 정렬되어있으니, 따로 정렬할 필요가 없었다. class Solution { public String solution(String s) { String answer = ""; String[] str=s.split(""); int[] index=new int[26]; String[] alpha={"a","b..

article thumbnail
[JAVA] StringBuilder
📚 코딩테스트/JAVA 2022. 10. 26. 16:34

💡 1. StringBuilder 사용하는 이유 기존 String 클래스의 한계 String 클래스는 한번 생성되면 문자열이 변경되지 않으므로 불변한 성질을 가지고 있다. 따라서 기존 문자열에 새로운 문자열을 추가하고자 하는 경우, 메모리에서 문자열이 추가되는것이 아니라, 새로운 메모리가 할당되어 문자열이 생성된다. 따라서 문자열의 변경이 빈번한 경우 StringBuilder 를 활용해야 한다. 아래와 같이 String sb="tesrStr";로 선언하고 sb=sb.concat("12");를 수행한 경우, sb 문자열은 새 주소가 할당된다. 문자열을 변경할 때마다 새로운 메모리가 할당되는 것은 자원낭비가 일어나기 때문에 StringBuilder를 활용해야 한다. 💡 2. StringBuilder Stri..

article thumbnail
[JAVA] 문법 : 형변환 정리
📚 코딩테스트/JAVA 2022. 10. 26. 15:50

📚JAVA 형변환 모음 java 형변환이 계속 조금씩 헷갈려서 따로 정리합니다. String -> int String s="123"; int num=Integer.parseInt(s); /// 123 String s="123"; int num=Integer.valueOf(s); // 123 int -> String null값이 들어오면 오류일으킨다. int num=123; String s=Integer.toString(num); // "123" null값이 들어오면 "null"반환 (권장) int num=123; String s=String.valueOf(num); // "123" String -> Char String str="string"; str.charAt(1); // t Char -> Strin..

article thumbnail
[JAVA] String method
📚 코딩테스트/JAVA 2022. 10. 26. 15:24

String 클래스 java.lang.String 클래스 C언어에서는 문자열을 char형 배열로 표현하지만, 자바에서는 문자열을 위한 String 클래스를 별도로 제공한다. String 클래스에는 문자열과 관련된 작업을 할 때 유용하게 사용할 수 있는 다양한 메소드가 포함되어 있다. 이러한 String 클래스는 java.lang 패키지에 포함되어 제공된다. String 인스턴스는 한번 생성되면 그 값을 읽기만 할 수 있고, 변경 할 수는 없다. 이러한 객체를 자바에서는 불변 객체(immutable object)라고 한다. 즉, 자바에서 덧셈(+)연산자를 이용하여 문자열 결합을 수행하면, 기존 문자열의 내용이 변경되는 것이 아니라 내용이 합쳐진 새로운 String 인스턴스가 생성되는 것이다. charAt(..