본문 바로가기

코딩2

[인터뷰] 자주 사용되는 코딩 패턴 안녕하세요, 인터뷰에서 자주 나오거나 사용되는 20가지 코딩 패턴에 대해 자세히 설명하겠습니다. 1. Two Pointers - 투 포인터 투 포인터 알고리즘(기법)은 말 그대로 두 개의 포인터를 이용해 문제를 해결하는 알고리즘을 뜻합니다. 보통 특정 조건을 만족하는 배열 내의 쌍이나 배열을 찾아야 할 때 또는 정렬된 배열에서 특정 요소를 찾을 때 사용됩니다. DSA: Array, String, LinkedList 문제를 해결하는 예시 1. 정렬된 배열이나 정렬되지 않은 배열에서 목표 합계를 이루는 숫자 쌍을 찾기 입력: [3,5,2,8,11], 목표 합계 = 10 출력: [2, 8] 자바 코드 import java.util.Arrays; public class TwoPointerSum { public .. 2024. 4. 16.
버블 정렬 - 알고리즘 버블 정렬 - Bubble Sort 서로 인접한 두 원소를 검사하여 정렬하는 알고리즘 정렬 과정 5,3,7,9,1 원소들을 배열에 추가하고 버블 정렬 해보겠습니다 1회전 5,3,7,9,1 2회전 3,5,1,7,9 3회전 3,1,5,7,9 4회전 1,3,5,7,9 알고리즘 분석 비교 횟수 -> 버블 정렬은 한번의 순화를 마칠 때 마다 비교 대상이 하나씩 줄어들기 때문에, 전체 원소의 개수가 n개 라고 할 때, 총 n-1 번 순회하면 정렬이 끝납니다. 위의 예제에서는 총 원소 개수가 5개 이므로, 4+3+2+1 = 10번 비교하게 됩니다. 이를 수식으로 일반화 시키면 다음과 같습니다. 따라서 평균적으로 O(n^2)의 시간복잡도를 가지게 됩니다 슈도코드 자바 소스코드: public class BubbleSor.. 2022. 9. 6.