목록배열 (18)
개발자는 기록이 답이다
알고리즘 할때 ArrayList를 자주 썼는데, 내부적으로는 어떻게 동작하는지 알아보기 위해 해당 포스팅을 작성해보려고 한다. ArrayList란? Java의 동적 배열인 ArrayList는 내부적으로 배열을 기반으로 하는 자료 구조이다. 크기를 동적으로 조절 가능하여 원소의 추가와 삭제가 용이하며, 랜덤 액세스에 강점을 가지고 있다. 중간에 원소를 추가하거나 삭제할 때는 다른 원소들을 이동시켜야 하므로 성능 저하가 있을 수 있다. 크기 조절은 현재 크기의 1.5 배로 확장하는 방식을 사용한다. 특히 동적인 데이터 크기 및 빈번한 원소 조작이 필요한 상황에서 적합한 자료구조이다. ArrayList의 동적 크기 확장의 메커니즘 ArrayList의 동적 크기 확장은 내부적으로 배열을 사용하며, 배열이 가득 ..
https://school.programmers.co.kr/learn/courses/30/lessons/42885 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해당 문제는 그리디 알고리즘을 이용한 문제라고 되어있지만, 나는 투 포인터를 배웠기 때문에 투포인터로 풀어보고자 한다. 첫번째 풀이 테스트케이스는 다 성공하지만, 제출했을 때, 결과가 처참하다. 단지 포인터를 쓰기 위해 lt rt만 집중했고, 문제를 어떻게 해결해야할지 판단과 문제에 대한 분석이 미숙했던것 같다. 채점 결과 정확성: 14.8 효율성: 7.4 합계: 22.2 / 100.0 impor..
https://school.programmers.co.kr/learn/courses/30/lessons/12924 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 첫번째 풀이 정확성: 70.8 효율성: 25.0 합계: 95.8 / 100.0 1을 안더해줘도 되게끔 sum에 lt변수를 넣어서 초기화 해줬는데, n이 1로 들어올 경우 연속된 수열의 합의 경우의 수를 제대로 못찾는 것 같다. 그래서 두번째 코드로 변경했다 예를 들어서, N이 1이면 1로 1을 만들 수 있으므로 경우의 수가 1개인데, 0이 출력된다. 투포인터 할때 sum에 lt를 대입해주지 말자,..
https://cote.inflearn.com/contest/10/problem/03-06 OnlineJudge cote.inflearn.com (위의 링크는 인프런 로그인 후, 해당 강의를 사지 않으면 접속이 되지 않습니다) 6. 최대 길이 연속부분수열 예시 입력 1 14 2 1 1 0 0 1 1 0 1 1 0 1 1 0 1 예시 출력 1 8 내가 푼 풀이(Time: 734ms Memory: 35MB) 0을 만났을때 1로 바꿔주는데, lt가 따라오면서 0이었던건지 파악하기 위해 arr배열을 복사해서 ints[]배열을 만들었다. 그런데 강의 풀이를 보니까, 따로 배열 복사를 하지 않고 1로 바꿔주지 않아도 그냥 카운팅만 해서 단순하게 풀 수 있는 문제였다. import java.util.Arrays; i..