본문 바로가기
728x90
반응형

분류 전체보기93

[백준] 이분 탐색 https://www.acmicpc.net/problem/2512 2512번: 예산 첫째 줄에는 지방의 수를 의미하는 정수 N이 주어진다. N은 3 이상 10,000 이하이다. 다음 줄에는 각 지방의 예산요청을 표현하는 N개의 정수가 빈칸을 사이에 두고 주어진다. 이 값들은 모두 1 이상 www.acmicpc.net 이진 탐색(Binary Search) 알고리즘 - 정렬되어 있는 리스트(배열)에서 탐색 범위를 절반씩 좁혀가며 데이터를 탐색하는 방법입니다. - 반드시 리스트(배열) 내부가 정렬되어 있어야 사용할 수 있습니다. - left, right, mid(또는 start, end, mid) 3개의 변수를 사용하여 탐색합니다. - N개의 데이터에 대하여 시간 복잡도는 O(logN) 입니다. 해설 - N개.. 2023. 6. 28.
[자료구조] 큐(Queue) 큐(Queue) -먼저 추가된 데이터가 먼저 출력되는 FIFO(First In First Out) 자료 구조로서 입력된 순서대로 처리해야 하는 상황에 이용된다. -Queue는 맨 뒤(tail)에 데이터를 계속 추가하고, 맨 앞(head)에서만 데이터를 읽기 때문에 순차적으로 데이터 처리한다. Queue 클래스 -.NET에는 큐를 Non-Generic인 Queue 클래스와 Generic 형태인 Queue 클래스가 있다. -두 Queue 클래스는 내부적으로 순환 배열로 구현되어 있는데, 배열의 마지막 요소에 다다른 경우 다시 배열 처음 요소로 순환하는 구조 (next % array_size)를 가지고 있다. -Queue는 내부적으로 head와 tail 포인터를 가지고 있는데, tail에 데이터를 추가(Enq.. 2023. 6. 26.
[백준] 한수 https://www.acmicpc.net/problem/1065 1065번: 한수 어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 www.acmicpc.net 문제에서 N은 1000이하 수다. 나는 1000 이상의 수에 대해서도 한수를 찾을 수 있게 string을 이용해 문제를 풀었다. 문제에 접근하기 전 N을 100 미만일때와 이상일때로 나눈다. 즉 N의 자리수가 2자리냐 3자리 이상이냐에 따라 문제를 접근한다. 해설 1) N이 100 미만일때 한수는 입력으로 들어온 수 N만큼 있다. ex) N이 80이면 한수는 80개다. 2) N이 100 이상일때 한수.. 2023. 6. 25.
[백준] 분리집합(유니온-파인드) 백준 문제 풀이 https://www.acmicpc.net/problem/1717 1717번: 집합의 표현 초기에 $n+1$개의 집합 $\{0\}, \{1\}, \{2\}, \dots , \{n\}$이 있다. 여기에 합집합 연산과, 두 원소가 같은 집합에 포함되어 있는지를 확인하는 연산을 수행하려고 한다. 집합을 표현하는 프로그램을 작 www.acmicpc.net 분리 집합 알고리즘 -교집합이 존재하지 않는 두개 이상의 집합을 뜻한다. -같은 집합에 속한 원소들을 O(1)의 시간 복잡도로 확인하는 방법으로 사용된다. -따라서 같은 집합에 속한 부모 값을 기준으로 두 집합을 Union(합)-Find(찾기)를 진행한다. -대표값(부모 노드)를 찾아 이용한다. Union 연산 -합집합 연산으로 a, b 두 개.. 2023. 6. 24.
[자료구조] 스택(Stack) 스택이란 -가장 나중에 추가된 데이터가 먼저 출력 처리되는 Last In First Out(LIFO) 자료구조다. -가장 최근에 입력된 순서대로 처리해야 하는 상황에 이용된다. -자료를 스택에 저장할 땐 Push, 꺼낼 땐 가장 최근 것부터 꺼내는데 이를 Pop 이라 한다. -스택에서 Pop시 스택에 top 값을 가져오면서 삭제한다. Stack 클래스 -.NET에는 Non-Generic인 Stack 클래스와 Generic 형태인 Stack 클래스가 있다. -Stack은 내부적으로 순환 배열로 구현되어 있으며, 스택이 가득 차면 자동으로 배열을 동적으로 확장한다. 사용 예제 using System; using System.Collections; using System.Collections.Generic; .. 2023. 6. 23.
[Tip] @(심벌) 사용 @(심벌) 사용 1 -문자열 앞에 사용하면, 해당 문자열 안의 escape 문자를 무시하고 문자 그대로 인식하게 한다. ex) 사용 예제 //back slash를 한번 지정하면 escape 문자로 인식되기에 2개의 back slash사용 string fileName = "C:\\Temp\\example.txt"; //@을 문자열 시작 부호전에 사용하면, back slash을 그대로 back slash로 인식 string fileNmaeBySymbol = @"C:\Temp\example.txt"; @(심벌) 사용 2 -한 문자열 변수에 여러 줄의 문자열을 지정하는 경우 사용하면 편리하다. -+로 연결하여 사용할 수 있지만, @를 문자열 앞에 두면 복수행의 문자열들을 갖는 문자 데이터를 지정할 수 있다. e.. 2023. 6. 22.
728x90
반응형