본문 바로가기

반응형

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

(5)
2.자료구조 - 4. 슬라이딩 윈도우 슬라이딩 윈도우 알고리즘: 2개의 포인터로 범위를 지정한 다음, 범위를 유지한 채로 이동하며 문제 해결  10/6문제 009: DNA 비밀번호평소에 문자열을 가지고 노는 것을 좋아하는 민호는 DNA 문자열을 알게 되었다. DNA 문자열은 모든 문자열에 등장하는 문자가 {‘A’, ‘C’, ‘G’, ‘T’} 인 문자열을 말한다. 예를 들어 “ACKA”는 DNA 문자열이 아니지만 “ACCA”는 DNA 문자열이다. 이런 신비한 문자열에 완전히 매료된 민호는 임의의 DNA 문자열을 만들고 만들어진 DNA 문자열의 부분문자열을 비밀번호로 사용하기로 마음먹었다.하지만 민호는 이러한 방법에는 큰 문제가 있다는 것을 발견했다. 임의의 DNA 문자열의 부분문자열을 뽑았을 때 “AAAA”와 같이 보안에 취약한 비밀번호가 만..
2. 자료구조 - 3. 투 포인터 9/29문제 006: 연속된 자연수의 합 구하기어떠한 자연수 N은, 몇 개의 연속된 자연수의 합으로 나타낼 수 있다. 당신은 어떤 자연수 N(1 ≤ N ≤ 10,000,000)에 대해서, 이 N을 몇 개의 연속된 자연수의 합으로 나타내는 가지수를 알고 싶어한다. 이때, 사용하는 자연수는 N이하여야 한다.예를 들어, 15를 나타내는 방법은 15, 7+8, 4+5+6, 1+2+3+4+5의 4가지가 있다. 반면에 10을 나타내는 방법은 10, 1+2+3+4의 2가지가 있다.N을 입력받아 가지수를 출력하는 프로그램을 작성하시오. 입력 : 첫 줄에 정수 N이 주어진다.  출력 : 입력된 자연수 N을 몇 개의 연속된 자연수의 합으로 나타내는 가지수를 출력하시오  코드 : #include using namespace..
2. 자료구조 - 2. 구간합 9/26# 구간 합 - 합 배열 S 정의S[i] = A[0] + A[1] + A[2] + ... + A[i-1] + A[i]: A[0] 부터 A[i]까지의 합: 합 배열은 기존의 배열은 전처리한 배열로, 합 배열을 활용하면 기존 배열의 일정 범위의 합을 구하는 시간 복잡도가 O(N)에서 O(1)로 감소합니다. : S[i] = S[i-1] + A[i]: i에서 j까지 구간 합 = S[j] - S[i-1]문제 003. 구간 합수 N개가 주어졌을 때, i번째 수부터 j번째 수까지 합을 구하는 프로그램을 작성하시오. 입력 : 첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하..
2. 자료구조 - 1. 배열과 리스트 그리고 벡터 9/24문제 001. 숫자의 합 구하기문제 N개의 숫자가 공백 없이 쓰여 있다. 이 숫자를 모두 합해 출력하는 프로그램을 작성하시오. 입력 : 1번째 줄에 숫자의 개수 N(1출력 : 입력으로 주어진 숫자 N개의 합을 출력한다. 풀이 : N의 범위가 1부터 100까지이므로 값을 int, long과 같은 숫자형으로 담을 수 없다.데이터 표현 범위int : -2,147,483,648 ~ 2,147,483,647 -> 최대 10자리long : -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 -> 최대 19자리 이기 때문이다. 그래서 문자열 형태로 입력값을 받고 해당 입력값을 배열에 저장해야한다. 코드 : #include using namespace std;int..
1. 시간 복잡도와 디버깅 # 시간 복잡도-  시간 복잡도란?     :   주어진 문제를 해결하기 위한 연산 횟수     :   C++에서의 1억 번의 연산 == 1초의 수행 시간  -  시간 복잡도 유형   빅-오메가 : 최선일 때의 연산 횟수를 나타낸 표기법   빅-세타 : 보통일 때의 연산 횟수를 나타낸 표기법   빅-오 : 최악일 때의 연산 횟수를 나타낸 표기법 ( 코딩 테스트에서는 빅-오 표기법을 기준으로 수행 시간을 계산 ) -  연산 횟수 = 알고리즘 시간 복잡도 n 값에 데이터의 최대 크기를 대입하여 도출 -  알고리즘의 시간 복잡도를 알고 있으면 연산 횟수에 따라 알고리즘 적합성을 평가할 수 있다.      + 코딩 테스트에서 시간 초과가 발생 하였을 때 문제가 되는 코드 부분을 도출 가능 # 디버깅- 디버깅 하..

반응형