본문 바로가기
반응형

알고리즘 PS (백준)/🐍 Python (파이썬)46

[백준 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] Pandas 설치 및 활용 (데이터 프레임) pandas 란?데이터 프레임을 효과적으로 다룰수 있는 라이브러리로 , panel datas의 약자로 파이썬 기반 데이터 분석에서 많이 사용되는 라이브러리 립니다. 사용방법import pandasimport pandas as pd판다스 설치하는 법 1. pip (파이썬 패키지 관리 시스템) 를 설치 안했다면? (맥 MAC) - 3.9 버전 기준윈도우는 python3.9 대신에 python을 입력하세요!2. pip를 이용해서 pandas 설치윈도우 cmd$ python -m pip install pandas맥 터미널 (3.9 버전 기준)$ python3.9 -m pip install pandas데이터 프레임데이터 프레임은 행(인덱스)와 열(컬럼)으로 구분되는 테이블형 데이터 베이스입니다.인덱스는 별도로 지.. 2022. 6. 7.