본문 바로가기

코딩 농장/백준 문제

(16)
[백준 Python] 2485번 가로수 1, 3, 7, 13 에 가로수가 위치한다면 5, 9, 11 위치에 가로수를 3개 더 심어 간격을 맞춰야 한다. # 가로수 일정한 간격으로 추가하기 / 유클리드 호제법 num = int(input()) arr = [] # arr = [0] * num arrSub = [] result = 0 # from math import gcd def gcd(a,b): if b>a: temp = a a = b b = temp while b!=0: a, b = b, a%b return a for i in range(num): arr.append(int(input())) if i != 0: arrSub.append(arr[i]- arr[i-1]) arr = list(set(arr)) arr.sort() GCD = arrS..
[백준 Python] 18111번 마인크래프트 1. 블록을 제거하거나 쌓아 높이를 같게 만들기 import sys input = sys.stdin.readline N, M, B = map(int, input().split()) arr = [] HEIS = [0 for _ in range(257)] # 0 으로 초기화 for n in range(N): T = list(map(int, input().split())) for m in range(M): HEIS[T[m]] += 1 arr.append(T) m_res, h_res = float('inf'), 0 for h in range(257): p = 0 m = 0 for b in range(257): if h > b: p += (h - b) * HEIS[b] else: m += (b - h) * HEI..
[백준 Python] 9996번 한국이 그리울 땐 서버에 접속하지 1. 문자열 사이 * 에 아무거나 넣고 2. 양 끝 같으면 DA 출력 아니면 NE 출력 num = int(input()) arr = input() left, right = arr.split("*") for i in range(num): inputString = input() if inputString[:len(left)] == left and inputString[-len(right):] == right and len(arr)-1
[백준 Python] 6588번 골드바흐의 추측 4보다 큰 모든 짝수는 두 홀수 소수의 합으로 나타낼 수 있다. 두 홀수 소수의 차가 가장 큰 소수로 출력해라 1. 짝수 정수 n 의 크기는 1.000.000 으로 작다. 2. arr[1000001] 배열로 1.000.000 까지의 수 중 홀수이며 소수인 것을 찾아 True 로 만들자 3. arr[n=3] 부터 시작하여 arr[i] == arr[n-i] = True ( 홀수이며 소수인 수 ) 라면 출력한다. # 4보다 큰 모든 짝수는 두 홀수 소수의 합으로 나타낼 수 있다. # 소수 배열 구하기 (소수 = True, 아니면 = False ) arr = [True for i in range(1000001)] for i in range(2,1001): # 소수가 아닌 놈 False 로 하기 if arr[i]..
[백준 Python] 1334번 다음 팰린드롬 수 어떤 수 N 보다 큰 팰린드롬 수 중 가장 작은 수를 출력 1. 숫자 입력 받기 2. 10 보다 작은 수는 따로 계산 3. 배열 슬라이싱을 사용해 숫자의 front(앞쪽) rare(뒤쪽을 뒤집은 것) 를 비교 만약 (12312)에서 rare(21) > front(12) 라면 (12321) 로 front 를 뒤집어서 박아주기 (12313) rare(31) < front(12) 라면 rare 부분 앞을 더해주고 front 뒤집어서 박아주기 num = input() length = len(num) if (int(num) // 10) < 1: if (int(num) == 9): result = str(11) else: result = str(int(num)+1) else: if int(num[:length//2..
[백준 Python] 기초 개념, 스킬 모음 ★입력받기 input() 함수 사용 # 형 변환 int(input()) # 입력 받은 데이터를 split() 으로 나누고 int 로 저장 ( 1 2 를 입력받고 나눠 저장 ) a, b = map(int , input().split()) # 입력 받는 데이터를 split() 으로 나누고 int 로 arr 에 저장 ( 1 2 3 4 ... 을 입력 받고 배열에 저장 ) arr = [ int(x) for x in input().split() ] import sys 사용 import sys # 그냥 사용 a = sys.stdin.readline() # input 을 변경해서 사용 input = sys.stdin.readline a = input() ★기본 함수 # arr 의 길이 반환 arr = [1,2,3] ..
[백준 Python] 2435번 기상청 인턴 신현수 1. 연속적인 일의 온도의 최대 합 출력 -> 누적 합을 사용한다. num ,day = map(int, input().split()) a = [int(x) for x in input().split()] maxTem = -999 for i in range(0,len(a) - day + 1): temp = 0 for tem in range(i,i+day): temp += a[tem] if temp > maxTem: maxTem = temp print(maxTem) ★입력받기 input() 함수 사용 1. int(input()) 으로 형 변환 2. a, b = map(int , input().split()) 으로 입력 받은 데이터를 split() 으로 나누고 int 로 저장 ( 1 2 를 입력받고 나눠 저장 ..
[백준 C]4963 섬의 개수 DFS, BFS 개념 : https://devuna.tistory.com/32 [알고리즘] 깊이 우선 탐색(DFS) 과 너비 우선 탐색(BFS) [알고리즘] 깊이 우선 탐색(DFS)과 너비 우선 탐색(BFS) 그래프를 탐색하는 방법에는 크게 깊이 우선 탐색(DFS)과 너비 우선 탐색(BFS)이 있습니다. 📌여기서 그래프란, 정점(node)과 그 정점을 연 devuna.tistory.com 1. map[][] 을 한번 만들고 수정할 필요가 없다. -> 수정을 해야한다면 (insert, delete) linkedList 로 연결해주어야겠지? 2. 이어진 섬(1)들 뭉탱이를 찾아야 한다. -> 섬을 발견했을 때 이어진 섬을 찾아야 한다. dir을 이용해 이어진 섬 찾자. 3. 이미 간 섬들을 표시해야한다. -..