Pink Transparent Star

Coding Test 41

[ Do it! 알고리즘 코딩 테스트 ] 5일차 _ 04. 버블 정렬

정렬 알고리즘 정의 버블 선택 삽입 퀵 병합 기수 버블 정렬 : 두 인접한 데이터의 크기를 비교하여 Swap 연산으로 정렬하는 방법 시간복잡도 O(n^2) 으로 다른 정렬 알고리즘에 비해 속도가 느린 편 버블 정렬 과정 1. 비교 연산이 필요한 루프 범위 설정 2. 인접한 데이터 값을 비교 3. swap 조건에 부합하면 swap 연산을 수행 4. 루프 범위가 끝날 때까지 반복 5. 정렬된 영역을 설정한다. 다음 루프를 실행할 때는 이 영영을 제외 6, 비교 대상이 없을 때까지 반복 문제 [ 백준 ] 2750번 버블 정렬 - 수 정렬하기 https://www.acmicpc.net/problem/2750 2750번: 수 정렬하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N..

[ 백준 ] 1874번 스택 수열

https://www.acmicpc.net/problem/1874 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net 문제 스택 (stack)은 기본적인 자료구조 중 하나로, 컴퓨터 프로그램을 작성할 때 자주 이용되는 개념이다. 스택은 자료를 넣는 (push) 입구와 자료를 뽑는 (pop) 입구가 같아 제일 나중에 들어간 자료가 제일 먼저 나오는 (LIFO, Last in First out) 특성을 가지고 있다. 1부터 n까지의 수..

Coding Test/백준 2024.01.26

[ Do it! 알고리즘 코딩 테스트 ] 4일차 _ 03. 스택과 큐

스택 : 삽입과 삭제 연산이 후입선출로 이뤄지는 자료구조 스택 용어 top : 삽입과 삭제가 일어나는 위치를 말함 push : top 위치에 새로운 데이터를 삽입하는 연산 pop : top 위치에 현재 있는 데이터를 삭제하고 확인하는 연산 top : top 위치에 현재 있는 데이터를 단순 확인하는 연산 코딩테스트 사용 문제 깊이 우선 탐색(DFS), 백트래킹 종류의 코딩 테스트에 효과적 후입선출의 개념은 재귀 함수 알고리즘 원리와 일맥상통 큐 : 삽입과 삭제 연산이 선입선출로 이뤄지는 자료 구조, 스택과 다르게 먼저 들어온 데이터가 먼저 빠져나감 큐 용어 back : 큐에서 가장 끝 데이터를 가리키는 영역 front : 큐에서 가장 앞의 데이터를 가리키는 영역 push : back 부분에 새로운 데이터를..

[ Do it! 알고리즘 코딩 테스트 ] 3일차 _ 03. 슬라이딩 윈도우

슬라이딩 윈도우(Sliding Window) : 투 포인터와 유사하게 2개의 포인터로 범위를 지정, 범위(Window)를 유지한 채로 이동하며 문제를 해결하는게 특징 교집합의 정보를 공유하고, 차이가 나는 양쪽 끝 원소만 갱신하는 방법 슬라이딩 윈도우와 투 포인터 차이 투 포인터 슬라이딩 윈도우 구간의 넓이가 조건에 따라 유동적으로 변경 항상 구간의 넓이가 고정 관련 문제

[ Do it! 알고리즘 코딩 테스트 ] 2일차 _ 03. 배열. 리스트. 백터

자료구조 배열 : 메모리의 연속 공간에 값이 채워져 있는 형태 🔸인덱스를 사용하여 바로 값에 접근 가능 🔸새로운 값을 삽입하거나 인덱스의 값을 삭제하기 어려움 🔸선언할 때 배열의 크기를 선언해야하며, 한번 선언 할 경우 늘리거나 줄이기 어려움 리스트 : 값과 포인터를 묶는 노드 🔸인덱스가 없어 값에 접근할 경우 Head 포인터부터 순서대로 접근 ➔ 값에 접근하는 속도가 느림 🔸데이터를 삽입, 삭제의 연산 속도가 빠름 ➔ 포인터로 연결되어 있기 때문 🔸선언할 때 크기를 선언하지 않음 ➔ 크기가 변하기 쉬운 데이터를 다룰 때 적절 🔸포인터를 저장할 공간이 필요하여 배열보다 구조가 복잡 백터 : C++ 표준 라이브러리에 있는 자료구조 컨테이너 중 하나 🔸동적으로 원소를 추가가능하며 크기가 자동으로 늘어남 🔸맨..

[ Do it! 알고리즘 코딩 테스트 ] 1일차 _ 02. 디버깅

해당 포스팅은 " Do it! 알고리즘 코딩 테스트 " 기반으로 정리 하였습니다 💡디버깅(Debugging) : 오류를 찾아 바로잡는 과정 디버깅은 개발자로써 많이 사용하고 중요한 기술이고, 코딩 테스트 문제를 풀면서도 잘 활용해야한다. 💡디버깅을 하는 법 🔶 디버깅 방법 🔸 디버깅 하고 싶은 줄에 중단점을 설정, 중단점의 경우 여러 개를 설정 할 수 있다. 🔸 디버깅을 실행하면 중담점부터 1줄씩 실행하거나 다음 중단점까지 실행할 수 있어 값이 의도대로 바뀌는지 확인 가능하다. 🔸 원하는 수식을 입력해 논리 오류를 파악 할 수 있다. 🔹디버깅을 하고자 하는 줄에 중단점(Break Poing)을 설정 🔹디버그창 확인, 로컬, 자동, 조사식 창 활용 🔹단축키를 이용하여 디버그 실행 한 단계씩 코드 실행 : ..

[ Do it! 알고리즘 코딩 테스트 ] 1일차 _ 01. 시간 복잡도

더보기 해당 포스팅은 " Do it! 알고리즘 코딩 테스트 " 기반으로 정리 하였습니다 💡 시간 복잡도 ( Time Complexity ) : 주어진 문제를 해결하기 위한 컴퓨터 프로그램의 입력값과 연산 수행 시간의 상관관계를 나타내는 척도 : 1억 번의 연산을 1초의 수행 시간으로 예측할 수 있음 💡시간 복잡도 표기 종류 : 시간 복잡도(성능 측정)에 사용되는 표기법은 3가지로 나눠 구분한다. 🔸Big-Omega (빅 - 오메가) : 최선일 때의 연산 횟수를 나타낸 표기법 , Ω(n) 🔸Theta (빅 - 세타) : 보통일 때의 연산 횟수를 나타낸 표기법, θ(n) 🔸Big-O (빅 - 오) : 최악일 때의 연산 횟수를 나타낸 표기법, O(n) 💡코딩 테스트에서는 어떤 시간 복잡도를 사용하는가? : 코..

[ 백준 ] 2018번 투 포인터 - 수들의 합 5

https://www.acmicpc.net/problem/2018 2018번: 수들의 합 5 어떠한 자연수 N은, 몇 개의 연속된 자연수의 합으로 나타낼 수 있다. 당신은 어떤 자연수 N(1 ≤ N ≤ 10,000,000)에 대해서, 이 N을 몇 개의 연속된 자연수의 합으로 나타내는 가지수를 알고 싶어한 www.acmicpc.net #include using namespace std; int main() { int N; cin >> N; int sum = 1 ; int count = 1; int startIndex = 1; int endIndex = 1; while (endIndex != N) { if (sum > N) { sum = sum - startIndex; startIndex++; } else ..

Coding Test/백준 2023.09.07

[ 백준 ] 1546번 자료구조 - 평균 구하기

문제 세준이는 기말고사를 망쳤다. 세준이는 점수를 조작해서 집에 가져가기로 했다. 일단 세준이는 자기 점수 중에 최댓값을 골랐다. 이 값을 M이라고 한다. 그리고 나서 모든 점수를 점수/M*100으로 고쳤다. 예를 들어, 세준이의 최고점이 70이고, 수학점수가 50이었으면 수학점수는 50/70*100이 되어 71.43점이 된다. 세준이의 성적을 위의 방법대로 새로 계산했을 때, 새로운 평균을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보다 크다. #include #include #include #include u..

Coding Test/백준 2023.09.06

코딩테스트 합격법 강의 정리

스파르타코딩 클럽의 1시간 만에 정복하는 코딩테스트 합격법의 최지웅 선생님의 강의를 듣고 작성하였습니다. 코딩테스트 란? 취업을 위한 필수 관문으로 기술역량, 문제해결능력, 코드 구현 능력을 파악하기 위한 테스트이다. 최근 채용 공고를 확인해 본 결과 1. 서류 심사 > 코딩테스트 2. 코딩 테스트 > 서류 심사 의 과정을 거쳐 채용을 하고 있으며 좋은 회사를 가기 위해선 코딩테스트를 꼭 준비해야한다. 그럼 코딩 테스트는 왜 보는가 ?? 기술 역량 : 프로그래밍 문법, 알고리즘, 자료구조 등 평가 문제 해결 능력 : 주어진 제시문을 이해, 문제 분석, 해결책을 찾기 코드 구현 능력 : 코드 구현 파악, 스타일 가이드, 주석 등 코드를 통한 협업 파악 코딩 테스트를 진행하기 위해선 2가지의 방법으로 진행합..

Coding Test 2023.09.01