일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 코드스테이츠 백엔드
- 투포인터알고리즘
- 백준 11659
- java
- 코딩테스트
- 싱글톤패턴
- 자바
- 알고리즘
- List.of
- Spring MVC 구성요소
- Array.asList
- String.valueOf()
- 재귀와반복문
- 구간합구하기
- 클라우드에서 도커 실행하기
- vm인스턴스생성
- 백준
- 11659
- Spring MVC 동작원리
- 재귀함수
- 성능테스트툴
- Spring Web MVC
- 버블정렬
- 프로그래머스
- MySQL
- GCP
- OOP
- 인텔리제이
- 스택
- 코드스테이츠
- Today
- Total
목록투포인터알고리즘 (2)
순간을 기록으로
문제 N개의 수 중에서 어떤 수가 다른 수 두 개의 합으로 나타낼 수 있다면 그 수를 “좋다(GOOD)”고 한다. N개의 수가 주어지면 그 중에서 좋은 수의 개수는 몇 개인지 출력하라. 수의 위치가 다르면 값이 같아도 다른 수이다. 입력 첫째 줄에는 수의 개수 N(1 ≤ N ≤ 2,000), 두 번째 줄에는 i번째 수를 나타내는 Ai가 N개 주어진다. (|Ai| ≤ 1,000,000,000, Ai는 정수) 출력 좋은 수의 개수를 첫 번째 줄에 출력한다. 예시 분석 좋은 수가 되려면 어떤 수가 다른 수 두 개의 합으로 나타낼 수 있어야 한다. 예를들어 N이 3이고 1 2 3을 입력받는다고 가정하자. 3은 다른 두 수 1과2의 합으로 나타할 수 있으므로 좋은 수라고 할 수 있다. 로직을 생각한다면 갯수 N을..
문제 풀이 배열의 연속된 원소와 관련이 있고 길이가 바뀌므로 투포인터 알고리즘이다. 코드 package 인프런.투포인터와슬라이딩윈도우.최대길이연속부분수열.방법1; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; public class Main { public int solution(int N, int k, int[] arr) { int answer=0; int count = 0; int start=0; for (int end = 0; end k) { // count가 k를 넘어가면 start 포인터가 0을 만날 때까지 오른쪽으로 이동시킨다. if (arr[start] == 0) count--; start++; } an..