파이썬 알고리즘
백준 1065 한수 파이썬
백준 1065 한수 파이썬 www.acmicpc.net/problem/1065 1065번: 한수 어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 www.acmicpc.net n = int(input()) han = 0 for i in range(1, n + 1): if i < 100: han += 1 else: ns = list(map(int, str(i))) print(ns) if ns[0] - ns[1] == ns[1] - ns[2]: han += 1 print(han) 1 ~ 100 까지는 비교할 숫자가 각 자릿수 밖에 없기 때문에, 모두 한수다. fo..
Python 백준 1436 영화감독
Python 백준 1436 영화감독 www.acmicpc.net/problem/1436 1436번: 영화감독 숌 666은 종말을 나타내는 숫자라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타 www.acmicpc.net n = int(input()) name = 666 cnt = 0 while (True): if "666" in str(name): cnt += 1 if cnt == n: # cnt = 3 print(name); break name += 1 if문을 타는데, cnt를 더해줘서 666이 667이 되는 순간은 666이 아니니 if문을 안타고 name을 타서 계속 +1을 해주다가 ..
Python 백준 2108 통계학
Python 백준 2108 통계학 www.acmicpc.net/problem/2108 2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. www.acmicpc.net import sys from collections import Counter import math input = sys.stdin.readline n = int(input()) nums_list = [] for i in range(n): nums = int(input()) nums_list.append(nums) a = sum(nums_list) / len(nums_list) ar = round(a) print(..
파이썬 알고리즘 백준 2609
파이썬 알고리즘 백준 2609 https://www.acmicpc.net/problem/2609 2609번: 최대공약수와 최소공배수 첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다. www.acmicpc.net import sys input = sys.stdin.readline num_list = list(map(int, input().split())) # 여기에 num_list = num_list2 이런식으로 해버리면 # 동일한 메모리값을 가지기 떄문에 num_list가 바뀐만큼 num_list2도 바뀐다. num_list2 = num_list[:] # [:] 말고 copy()도 가능함. num_list.sort() num_list2.so..
Python 백준 9021 괄호
Python 백준 9021 괄호 www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net import sys input = sys.stdin.readline n = int(input()) def vps(string): stack = [] for i in string: if len(stack) == 0 and i == ')': return 'NO' if i == '(': stack.append(i) else: if stack[-1] == ..
백준 9461 파도반 수열 / 파이썬 알고리즘
백준 9461 파도반 수열 / 파이썬 알고리즘 www.acmicpc.net/problem/9461 9461번: 파도반 수열 오른쪽 그림과 같이 삼각형이 나선 모양으로 놓여져 있다. 첫 삼각형은 정삼각형으로 변의 길이는 1이다. 그 다음에는 다음과 같은 과정으로 정삼각형을 계속 추가한다. 나선에서 가장 긴 변의 www.acmicpc.net n = int(input()) save = { } save[1] = 1 save[2] = 1 save[3] = 1 save[4] = 2 save[5] = 2 for _ in range(n): pn = int(input()) # pn입력값 받고 for k in range(6, pn+1): #하나의 입력값에 대해서 for문을 돌린다. save[k] = save[k-1] + ..
Python 백준 알고리즘 2839 설탕배달 파이썬
Python 백준 알고리즘 2839 설탕배달 파이썬 www.acmicpc.net/problem/2839 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net 처음에 한 뻘 짓 #입력값 n = int(input()) a = 3 b = 5 if n % 5 == 0: print(n // 5) elif n % 5 == 3: print(int(n%5 + 1)) elif n%5 = 0 : if n % 5 == 0 : m += (n // 5) # print(m) break n -= 3 m += 1 # else : print(-1) n을 ..
백준 알고리즘 2606 바이러스 / 파이썬 (Python)
백준 알고리즘 2606 바이러스 / 파이썬 (Python) https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net N = int(input()) P = int(input()) graph = [[0]*(N+1) for _ in range(N+1)] done = [] # 바이러스가 완료된 애들을 넣어주는구나 for _ in range(P): x, y = map(int, input().split()) graph[x][y], graph[y][x] = 1,1 def..