알고리즘 & 코딩 테스트 이론/🧠 Do it! 알고리즘 코딩테스트 with JAVA 6

2-3. 투 포인터

🧠 목차투포인터[실전 문제] 수들의 합 (백준 2018)[실전 문제] 주몽 (백준 1940)1. 투포인터 두 개의 포인터를 이용해 한 번의 순회(또는 제한된 순회)로 효율적인 탐색을 수행하는 방법이다.주로 정렬된 배열, 부분합 문제, 중복 제거, 슬라이딩 윈도우, 두 배열 비교 등에 자주 쓰인다.시간 복잡도: O(N)2. [실전 문제] 수 들의 합 5 (백준 2018) 문제 분석하기N의 최대 값: 10,000,000시간제한 2초O(nlogn), O(n^2) 등의 알고리즘은 시간 초과 !O(n) 의 시간 복잡도 알고리즘을 사용해야 한다. → 투 포인터 사용 import java.util.Scanner;public class Main { public static void main(String[] a..

2-2. 구간 합

🧠 목차구간 합[실전 문제] 구간 합 구하기 4 (백준 11659)1. 구간 합합 배열을 이용하여 시간 복잡도를 더 줄이기 위해 사용하는 특수한 목적의 알고리즘코딩 테스트에서 사용빈도가 높다. 합 배열배열 A가 있을 때 합 배열 S 정의S[i] = A[0] + A[1] + A[2] + ... + A[i-1] + A[i] // A[0]부터 A[i]까지의 합 합 배열 S를 만드는 공식S[i] = S[i -1] + A[i] 구간 합을 구하는 공식S[j] - S[i-1] // i 에서 j 까지 구간 합 2. [실전 문제] 구간 합 구하기 4 (백준 11659)문제: 구간 합 구하기 4 https://www.acmicpc.net/problem/11659 import java.util.Scanner;p..

2-1. 배열과 리스트

🧠 목차배열과 리스트[실전 문제] 숫자의 합 구하기 (백준 11720)[실전 문제] 평균 구하기 (백준 1546)1. 배열과 리스트배열메모리의 연속 공간에 값이 채워져 있는 형태의 자료구조배열의 특징인덱스를 사용하여 값에 바로 접근할 수 있다.새로운 값을 삽입하거나 특정 인덱스에 있는 값을 삭제하기 어렵다. 값을 삽입하거나 삭제하려면 해당 인덱스 주변에 있는 값을 이동시키는 과정이 필요하다.배열의 크기는 선언할 때 지정할 수 있으며, 한 번 선언하면 크기를 늘리거나 줄일 수 없다.구조가 간단하여 코딩 테스트에서 많이 사용한다. 리스트값과 포인터를 묶은 노드라는 것을 포인터로 연결한 자료구조리스트의 특징인덱스가 없으므로 값에 접근하려면 Head 포인터부터 순서대로 접근해야 한다. = 값에 접근하는 속도..

1-2. 디버깅

🧠 목차디버깅디버깅 활용 사례1. 디버깅디버깅(Debugging)이란?프로그램에서 발생하는 문법 오류나 논리 오류를 찾아 바로잡는 과정 디버깅 방법코드에서 디버깅하고자 하는 줄에 중단점을 설정한다. 이때 중단점은 여러 개 설정할 수 있다.IDE의 디버깅 기능을 실행하면 코드를 1줄씩 실행하거나 중단점까지 실행할 수 있으며, 이 과정에서 추적할 변숫값도 지정할 수 있다. 이 방법으로 변숫값이 자신이 의도한 대로 바뀌는지 파악한다. 변숫값 이외에도 원하는 수식을 입력해 논리 오류를 파악할 수도 있다.2. 디버깅 활용 사례코딩 테스트를 진행하며 실수하기 쉬운 4가지 오류변수 초기화 오류반복문에서 인덱스 범위 지정 오류잘못된 변수 사용 오류자료형 범위 오류 🧠자료형은 처음부터 long 형으로 선언한다.자료형..

1-1. 시간복잡도

🧠 목차시간복잡도시간 복잡도 유형시간 복잡도 활용하기1. 시간복잡도주어진 문제를 해결하기 위한 연산 횟수 * 수행 시간: 1억번의 연산 = 1초2. 시간 복잡도 유형시간 복잡도 유형빅-오메가 (Ω(n)) : 최선일 때 (best case)의 연산 횟수를 나타낸 표기법빅-세타 (Θ(n)) : 보통일 때 (average case)의 연산 횟수를 나타낸 표기법빅-오 (O(n)) : 최악일 때 (worst case)의 연산 횟수를 나타낸 표기법boolean contains(int[] arr, int target) { for (int num : arr) { if (num == target) { return true; } } return false;}/..

Do it! 알고리즘 코딩테스트 with JAVA

인프런 무료강의인Do it! 알고리즘 코딩테스트 with JAVA를 정리해보려고 한다. https://www.inflearn.com/course/%EB%91%90%EC%9E%87-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EC%BD%94%EB%94%A9%ED%85%8C%EC%8A%A4%ED%8A%B8-%EC%9E%90%EB%B0%94 [지금 무료]Do it! 알고리즘 코딩테스트 with JAVA 강의 | 하루코딩 - 인프런하루코딩 | , [사진] 💻 코딩테스트 알고리즘의 핵심,자바로 구현하는 알고리즘을 학습해요! 코딩테스트에서 다루는 알고리즘의 핵심 이론에 대하여 배웁니다. 학습한 알고리즘을 실제 JAVA 언어www.inflearn.com