본문 바로가기
반응형

Python43

[백준 12891] 슬라이딩 윈도우 알고리즘 - 파이썬 (Python) DNA 비밀번호 문제 평소에 문자열을 가지고 노는 것을 좋아하는 민호는 DNA 문자열을 알게 되었다. DNA 문자열은 모든 문자열에 등장하는 문자가 {‘A’, ‘C’, ‘G’, ‘T’} 인 문자열을 말한다. 예를 들어 “ACKA”는 DNA 문자열이 아니지만 “ACCA”는 DNA 문자열이다. 이런 신비한 문자열에 완전히 매료된 민호는 임의의 DNA 문자열을 만들고 만들어진 DNA 문자열의 부분문자열을 비밀번호로 사용하기로 마음먹었다. 하지만 민호는 이러한 방법에는 큰 문제가 있다는 것을 발견했다. 임의의 DNA 문자열의 부분문자열을 뽑았을 때 “AAAA”와 같이 보안에 취약한 비밀번호가 만들어 질 수 있기 때문이다. 그래서 민호는 부분문자열에서 등장하는 문자의 개수가 특정 개수 이상이여야 비밀번호로 사용할.. 2022. 10. 2.
[백준 1253] 투 포인터 알고리즘 - 파이썬 (Python) 좋다 문제 N개의 수 중에서 어떤 수가 다른 수 두 개의 합으로 나타낼 수 있다면 그 수를 “좋다(GOOD)”고 한다. N개의 수가 주어지면 그 중에서 좋은 수의 개수는 몇 개인지 출력하라. 수의 위치가 다르면 값이 같아도 다른 수이다. 입력 첫째 줄에는 수의 개수 N(1 ≤ N ≤ 2,000), 두 번째 줄에는 i번째 수를 나타내는 Ai가 N개 주어진다. (|Ai| ≤ 1,000,000,000, Ai는 정수) 출력 좋은 수의 개수를 첫 번째 줄에 출력한다. 예제 입력 10 1 2 3 4 5 6 7 8 9 10 예제 출력 8 투 포인터 알고리즘 1차원 배열이 있고, 이 배열에서 각자 다른 원소를 가리키고 있는 2개의 포인터를 조작해가면서 원하는 것을 얻는 형태입니다. 완전 탐색으로 문제 풀때 시간초과가 .. 2022. 10. 2.
[백준 2018] 투 포인터 알고리즘 - 파이썬(Python) 수들의 합 5 문제 어떠한 자연수 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을 몇 개의 연속된 자연수의 합으로 나타내는 가지수를 출력하시오 예제 입력 15 예제 출력 4 투 포인터 알고리즘 1차원 배열이 있고, 이 배열에서 각.. 2022. 10. 2.
[백준 11660번] 누적 합 알고리즘 - 파이썬(python) 구간 합 구하기 5 문제 N×N개의 수가 N×N 크기의 표에 채워져 있다. (x1, y1)부터 (x2, y2)까지 합을 구하는 프로그램을 작성하시오. (x, y)는 x행 y열을 의미한다. 예를 들어, N = 4이고, 표가 아래와 같이 채워져 있는 경우를 살펴보자. 1 2 3 4 2 3 4 5 3 4 5 6 4 5 6 7 여기서 (2, 2)부터 (3, 4)까지 합을 구하면 3+4+5+4+5+6 = 27이고, (4, 4)부터 (4, 4)까지 합을 구하면 7이다. 표에 채워져 있는 수와 합을 구하는 연산이 주어졌을 때, 이를 처리하는 프로그램을 작성하시오. 입력 첫째 줄에 표의 크기 N과 합을 구해야 하는 횟수 M이 주어진다. (1 ≤ N ≤ 1024, 1 ≤ M ≤ 100,000) 둘째 줄부터 N개의 줄에는.. 2022. 10. 2.
[백준 11659번] 누적 합 알고리즘-파이썬(python) 구간 합 구하기 4 문제 수 N개가 주어졌을 때, i번째 수부터 j번째 수까지 합을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j가 주어진다. 출력 총 M개의 줄에 입력으로 주어진 i번째 수부터 j번째 수까지 합을 출력한다. 제한 1 ≤ N ≤ 100,000 1 ≤ M ≤ 100,000 1 ≤ i ≤ j ≤ N 예제 입력 1 5 3 5 4 3 2 1 1 3 2 4 5 5 예제 출력 1 12 9 1 누적 합(Prefix Sum) / 구간 합 누적합 또는 구간 합 알고리즘은 코딩테스트에 사용 빈도가 높은 알고리즘이기.. 2022. 10. 1.
[파이썬 python] Matplot 설치 및 활용 (데이터 시각화 , 그래프) 1. pip 설치하기(윈도우 / 맥 mac) pip (파이썬 패키지 관리 시스템) 를 설치 안했다면? (맥 MAC) - 3.9 버전 기준 윈도우는 python3.9 말고 python 으로 하세요! 2. pip로 matplot 설치하기 (python -m pip install --upgrade pip) - pip 설치 윈도우 $ python -m pip install matplotlib 맥 mac 3.9 버전 $ python3.9 -m pip install matplotlib matplot 데이터 시각화 라이브러리로 다양한 형태의 그래프 그리기 기능을 제공합니다. 인공 지능 연구 분야에 많이 활용하고 아래와 같이 작성해서 사용할 수 있습니다. -import matplotlib.pyplot – import .. 2022. 6. 19.
[파이썬 python] : numpy 설치 및 활용 (배열 , 수학/행렬연산 , 코싸인 유사도) numpy 모듈 과학 연산과 인공지능 행렬 연산을 위해서 설계된 파이썬 라이브러리 입니다. 다차원 배열 처리와 수학 기능들을 쓸수 있고 , 내부적으로 c언어 구현되어있어 매우 빠르고 효율적입니다. 설치하기(윈도우 / 맥 mac) pip (파이썬 패키지 관리 시스템) 를 설치 안했다면? (맥 MAC) - 3.9 버전 기준 윈도우는 python3.9 대신에 python을 입력하세요! pip로 numpy 설치하기 윈도우 cmd python -m pip install numpy 맥 터미널 (3.9 버전 기준) python3.9 -m pip install numpy numpy array 생성하기 numpy의 array 메소드를 통해 배열로 변환할수 있습니다. numpy의 arange 함수 (리스트의 range와 .. 2022. 6. 2.