반응형

파이썬 131

[백준 파이썬] 2667번 단지번호붙이기

백준 2667번 단지번호붙이기 www.acmicpc.net/problem/2667 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net 파이썬 풀이 import sys input = sys.stdin.readline N = int(input()) graph = [list(input().rstrip()) for i in range(N)] # 그래프 생성 visited = [[0] * N for i in range(N)] # 방문 정점 houses = [] house = 0 def search(i, j): # 탐색 gl..

Python/백준 2021.05.04

[백준 파이썬] 2178번 미로 탐색

2178번 미로 탐색 www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net 파이썬 풀이 import sys import collections input = sys.stdin.readline N, M = map(int,input().split()) graph = [[0] * (M) for i in range(N)] visited = [[0] * (M) for i in range(N)] # 방문 노드 기록 queue = collections.deque() # 큐 queue.append((0,0)) ..

Python/백준 2021.05.03

[ISLR] 선형 회귀(Linear Regression) Python코드

코드 출처 [1] https://github.com/JWarmenhoven/ISLR-python [2] https://github.com/emredjan/ISL-python 선형 회귀(Linear Regression) 필요한 라이브러리 import # 필요한 라이브러리 import import pandas as pd import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import axes3d import seaborn as sns from sklearn.preprocessing import scale import sklearn.linear_model as skl_lm from sklearn.metrics import m..

[백준 파이썬] 2512번 예산

백준 2512번 예산 www.acmicpc.net/problem/2512 2512번: 예산 첫째 줄에는 지방의 수를 의미하는 정수 N이 주어진다. N은 3 이상 10,000 이하이다. 다음 줄에는 각 지방의 예산요청을 표현하는 N개의 정수가 빈칸을 사이에 두고 주어진다. 이 값들은 모두 1 이상 www.acmicpc.net 파이썬 풀이 import sys input = sys.stdin.readline N = int(input()) cities = list(map(int, input().split())) budgets = int(input()) # 예산 start, end = 0, max(cities) # 시작 점, 끝 점 # 이분 탐색 while start mid: total += mid else: t..

Python/백준 2021.05.02

[백준 파이썬] 2805번 나무 자르기

백준 2805번 나무 자르기 www.acmicpc.net/problem/2805 2805번: 나무 자르기 첫째 줄에 나무의 수 N과 상근이가 집으로 가져가려고 하는 나무의 길이 M이 주어진다. (1 ≤ N ≤ 1,000,000, 1 ≤ M ≤ 2,000,000,000) 둘째 줄에는 나무의 높이가 주어진다. 나무의 높이의 합은 항상 M보 www.acmicpc.net 파이썬 풀이 이분 탐색 풀이입니다. 톱날의 높이를 이분 탐색으로 찾습니다. import sys input = sys.stdin.readline N, M = map(int,input().split()) # 나무 수, 필요한 나무 길이 trees = list(map(int, input().split())) start, end = 0, max(tre..

Python/백준 2021.05.02

[백준 파이썬] 17219번 비밀번호 찾기

백준 17219번 비밀번호 찾기 www.acmicpc.net/problem/17219 17219번: 비밀번호 찾기 첫째 줄에 저장된 사이트 주소의 수 N(1 ≤ N ≤ 100,000)과 비밀번호를 찾으려는 사이트 주소의 수 M(1 ≤ M ≤ 100,000)이 주어진다. 두번째 줄부터 N개의 줄에 걸쳐 각 줄에 사이트 주소와 비밀번 www.acmicpc.net 파이썬 풀이 import sys import collections input = sys.stdin.readline dic = collections.defaultdict(str) N, M = map(int,input().split()) # 사이트 수, 비밀번호를 찾을 사이트 수 for i in range(N): # 사이트와 비밀번호 저장 site, p..

Python/백준 2021.05.01

[백준 파이썬] 2751번 수 정렬하기 2

백준 2751번 수 정렬하기 2 www.acmicpc.net/problem/2751 2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 파이썬 풀이 병합 정렬로 풀었습니다. import sys sys.setrecursionlimit(10**6) input = sys.stdin.readline N = int(input()) arr = [] for i in range(N): arr.append(int(input())) def merge_sort(arr): if len(arr) R[j]): mer.appe..

Python/백준 2021.04.29

[파이썬 백준] 2750번 수 정렬하기

백준 2750번 수 정렬하기 www.acmicpc.net/problem/2750 2750번: 수 정렬하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 파이썬 풀이 삽입 정렬을 이용했습니다. N = int(input()) # 원소 수 입력 받기 arr = [] # 빈 어레이 생성 for i in range(N): arr.append(int(input())) # 숫자 삽입 # 삽입 정렬 for j in range(1, len(arr)): key = arr[j] i = j-1 while i >= 0 and arr[i] > key: # key..

Python/백준 2021.04.29

[백준 파이썬] 11053번 가장 긴 증가하는 부분 수열

백준 11053번 가장 긴 증가하는 부분 수열 www.acmicpc.net/problem/11053 11053번: 가장 긴 증가하는 부분 수열 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이 www.acmicpc.net 파이썬 풀이 동적 프로그래밍을 활용한 풀이입니다. import sys import collections input = sys.stdin.readline N = int(input()) # 수열 크기 dp = collections.defaultdict(int) # 데이터 저장 stack = ..

Python/백준 2021.04.27

[백준 파이썬] 2747번 피보나치 수

백준 2747번 피보나치 수 www.acmicpc.net/problem/2747 2747번: 피보나치 수 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 www.acmicpc.net 파이썬 풀이 동적 프로그래밍으로 이전에 계산한 값들을 저장한뒤에, 현재 값을 계산할 때 저장한 값을 불러오도록 풀었습니다. import sys import collections sys.setrecursionlimit(10**6) input = sys.stdin.readline N = int(input()) dp = collections.defaultd..

Python/백준 2021.04.26
반응형