ArrayList

[TIL] 2주차 알고리즘 코드 리뷰, Java 스터디
✍ Today I Learned Java 스터디 시작 새롭게 한 주가 시작되면서 2주차에 접어들었다. 오전 9시 언어 스터디 발제를 시작으로 6주간의 언어 스터디도 함께 하게 되었다. 지난 pre-onboarding 주차 때 공부했던 책 [혼자 공부하는 자바]를 가지고 매일 하루 30분씩 스터디 조원들과 언어에 대한 기본기를 다지는 시간이다. 우리 조는 월~금까지는 개인 공부를 진행하고 토요일에 각자 맡은 챕터를 발표하기로 했다. 나는 바로 이번주에 함께 공부할 6 챕터 - 클래스를 맡아 발표를 진행하게 되었다. 알고리즘 주간과 같이 진행되기 때문에 조금 부담이 되기도 했는데, 확실히 다른 사람에게 설명해주면서 스스로 더 이해하는 스타일이라 즐거운 시간이 될 것 같다! 알고리즘 코드 리뷰 옆 조의 조원분..

[Java/프로그래머스] 두 개 뽑아서 더하기
문제 풀이 (1) 문제 분석하기 더하려는 두 개의 수는 서로 다른 인덱스! 이중 for문을 돌면서 배열에서 나올 수 있는 모든 두 수의 합을 HashSet에 저장 HashSet은 중복을 허용하지 않음 HashSet을 ArrayList로 변환하고 오름차순으로 정렬한 후, Array로 변환 (2) 슈도코드 작성하기 HashSet 생성 for(numbers의 길이만큼) { for(numbers의 길이만큼) { if(i와 j가 같지 않으면) { set에 numbers[i]와 numbers[j]의 합 추가 } } } HashSet을 ArrayList로 변환 int형의 배열을 ArrayList의 size만큼 생성 for(list size만큼) { ArrayList 요소를 모두 int형 배열에 담음 } 배열 오름차순..

[Java/프로그래머스] 같은 숫자는 싫어
문제 풀이 (1) 문제 분석하기 연속 숫자는 제거하고, 순서는 그대로 유지! Arraylist 생성하여 입력 받은 array와 비교하고 중복 없도록 list에 추가 list를 array로 변환하여 리턴 (2) 슈도코드 작성하기 Arraylist 객체 생성 list에 arr[0] 추가 for(arr 길이만큼) { if(list의 마지막과 요소와 배열이 일치 하지 않으면) { list에 arr[i] 추가 } } } list를 배열로 변환하여 리턴 (3) 코드 구현하기 package algorithm.test15; import java.util.ArrayList; import java.util.List; public class Solution { public static void main(String[] ar..

[Java/프로그래머스] 나누어 떨어지는 숫자 배열
문제 풀이 (1) 문제 분석하기 arr의 길이는 정해져 있지 않으므로 배열 대신 Arraylist 사용 // 선언 List list = new ArrayList(); // add 메서드로 요소 추가 list.add(element) // list의 길이 list.size() // 리스트 오름차순으로 정렬 Collections.sort(list); // index에 접근 list.get(i) // String 타입의 List를 배열로 변환할 때 // int 형과 같은 primitive 타입 X stringList.toArray(new String[0]) return 타입이 int 타입의 배열이기 때문에 다시 배열로 변환하여 출력 (2) 슈도코드 작성하기 int타입 Arraylist 선언 for(입력 받은 배..
[TIL] 알고리즘 배열과 리스트(Java)
✍ Today I Learned 배열과 리스트 배열 메모리의 연속 공간에 값이 채워져 있는 형태의 자료구조 인덱스를 사용하여 값에 접근 선언한 자료형의 값만 저장 가능 배열의 크기는 선언할 때 지정, 한 번 선언하면 크기를 늘리거나 줄일 수 없음 새로운 값을 삽입하거나 특정 인덱스에 있는 값을 삭제하려면 해당 인덱스 주변에 있는 값을 이동시켜야함 구조가 간단하므로 코딩 테스트에서 많이 사용 리스트 값과 포인터를 묶은 노드라는 것을 포인터로 연결한 자료구조 인덱스가 없으므로 접근하려면 Head 포인터부터 순서대로 접근 → 값에 접근하는 속도가 느림 포인터로 연결되어 있어 데이터를 삽입하거나 삭제하는 연산 속도 빠름 선언할 때 별도의 크기 지정 필요X, 크기가 변하기 쉬운 데이터 다룰 때 적절 포인터를 저장..
[TIL] Java ArrayList, HashSet, HashMap, Generic
✍ Today I Learned [컬렉션 프레임워크 Collection Framework] 자바에서 컬렉션 프레임워크(collection framework)란? 많은 데이터를 효과적으로 처리하기 위해 표준화된 방법을 제공하는 클래스의 집합을 의미한다. 데이터를 저장하는 자료 구조와 데이터를 처리하는 알고리즘을 구조화하여 클래스로 구현해 놓은 것이다. 인터페이스를 사용하여 구현된다. 주요 인터페이스로는 List, Set, Map이 있다. List와 Set 인터페이스는 Collection 인터페이스를 상속받지만, 구조상의 차이로 Map 인터페이스는 별도로 정의된다. , 는 모든 클래스가 제네릭으로 표현되어 있음을 알려준다. [Generic] 제네릭이란? 데이터 타입(data type)을 일반화(general..