주어진 범위 내의 모든 소수를 구하는 알고리즘2부터 n까지의 모든 자연수를 적는다.2를 제외한 모든 자연수를 지움3을 제외한 모든 자연수를 지움...위 과정을 반복하면서 지워지지 않은 수는 모두 소수임. 에라토스테네스의 체를 이용해 작성한 코드 check = \[Tru
1\. 문제분석파이썬에서는 리스트를 이용해 쉽게 해결 가능2\. 슈도코드 작성3\. 코드 구현
1. 문제분석 > 1. 최댓값을 골라야 함(m) > 2. 모든 점수를 점수/(m*100)으로 저장 2. 슈도코드 작성 3. 코드 구현
1\. 문제 분석 및 접근법구간 합 배열을 2차원으로 구성하기2차원 구간 합 공식x1,x2,y1,y2에 대한 답을 구간 합으로 구하기Dx2 - Dx1-1 - Dx2 + Dx1-1 2\. 슈도코드 작성 3\. 코드 구현
1\. 문제분석 및 접근법(A+B) % C == ((A%C)+(B%C))%C\->특정 구간 수들의 나머지 연산을 더해 나머지 연산을 한 값 == 구간 합의 나머지 연산을 한 값구간 합 배열에서 Si - Sj는 원본 리스트의 j+1부터 i까지의 구간 합임Si % M과
1\. 문제분석 및 접근법n의 최댓값이 10^7이기 때문에 O(nlogn)으로도 시간초과가 남O(n)의 알고리즘을 채택해야함투 포인터로 접근1~입력받은 값까지의 리스트 생성카운트, start, end 변수 생성start~end까지 더 하면서 투포인터 이동원칙으로 이동n
1\. 문제분석 및 접근법n의 범위가 10^4이므로, O(n^2)은 불가능, O(nlogn)은 가능\->정렬 알고리즘 사용가능1개의 갑옷은 2개의 재료만을 이용해 제작 가능투포인터 를 이용하되, start와 end를 같이 증가시키는 방식으로 접근입력받은 리스트 정렬st
1\. 문제분석 및 접근법수의 위치가 다르면 값이 같아도 다른 수이기 때문에 중복 가능투 포인터 를 사용하되, 자기 자신은 제외해야 함.시간 복잡도는 O(n^2)까지 가능n을 입력 받음리스트에 n개의 수를 저장정렬투 포인터를 처음과 마지막에 배치투 포인터 이동 원칙에
1\. 문제분석 및 접근법DNA 문자열 = {A,C,G,T}O(nlogn)까지 사용가능투 포인터, 슬라이딩 윈도우 알고리즘 사용s, p 입력받음문자열 입력받음DNA각 문자 최소 갯수 입력 받음(리스트로 생성)슬라이딩 윈도우로 p만큼 유지하면서 배열 검사각 배열마다 DN
1\. 문제분석 및 접근법스택에 1부터 n까지 오름차순으로 하나씩 들어감n개의 숫자를 넣을 리스트 생성리스트의 첫번째 숫자랑 동일해질 때까지 1부터 스택에 넣음넣을때마다 + 출력동일해지면 pop, pop할 때는 - 출력그리고 다시 쌓기반복하다가 pop을 하고 나서 바로
1\. 문제분석 및 접근법시간복잡도 때문에 매번 뒤에 있는 수를 비교하면 안됨.스택에 새로 들어오는 수가 top에 존재하는 수보다 크면 오큰수임마지막 숫자는 무조건 -1을 출력스택이 채워져 있고, 탑보다 새로 들어오는 숫자가 큰 경우 pop한 인덱스를 이용해 정답 수열
1\. 문제분석 및 접근법최대 범위가 500만으로, 정렬을 사용할 수 없음덱(양쪽으로 값을 넣고 뺄 수 있음)을 사용해야 함최솟 값 가능성 없는 데이터 삭제새로 들어오려는 수의 바로 앞의 수가 더 크면 바로 삭제슬라이딩 윈도우 크기 밖 데이터 삭제새로 들어오는 수의 인
문제를 이해하는 것 자체가 어려웠다... 2번 예제에 대한 출력값을 하나씩 대입해가면서 풀어냈다. 덱을 쓸 줄 알고, 문제에 대한 이해를 확실히 한 후 구현 자체는 어렵지 않았다.
버블 정렬을 사용하는 것이 아니라, 버블 정렬로 정렬하려면 몇 번의 교환이 필요한지를 구하는 문제
삽입 정렬과 합 배열을 이용해서 푸는 문제이다.