Python; -1을 입력받을 때 까지 계속 input()받기종종 문제를 풀다보면 -1을 입력 받을때 까지 계속 입력받는 경우가 있음이럴때 어떻게 간결하게 입력받을지 고민을 하다가 작성함 배열에 -1을 입력받기 전까지 입력받은 값을 추가하는 코드를 작성해보겠음1. 이터레이터를 사용한 방법짧으면서도 보기 편함n = []for i in iter(input, '-1'): n.append(int(i)) 이 코드를 더 짧게 한 줄로 나타내면n = list(map(int, iter(input, '-1'))) 또 비슷하게 응용해서 아래와 같이 한 줄로 나타낼 수 있음n = [int(x) for x in iter(input, '-1')]   2. while을 사용한 방법가장 일반적으로 사용하는 방법임n=[]while True: n=int(input()) if(n..
Python; 연속된 숫자의 개수 세기import randomlst = [random.choice([0, 1]) for _ in range(10)]max_count = 0current_count = 1for i in range(1, len(lst)): if lst[i] == lst[i-1]: current_count += 1 else: current_count = 1 max_count = max(max_count, current_count)print(lst)print("최대 연속 횟수:", max_count) lst는 10개의 0과 1로 랜덤하게 이루어진 리스트임1부터 배열의 길이 만큼 반복할거임1 부터 시작하는 이유는 리스트 요소의 이전요소(i-1)와 현재요소(i)을 비교하기 위함임. (0부터 시작..
Python; 리스트로 간단한 극장 예약 구현하기극장의 크기는 10X10이다.사용자에게 먼저 좌석을 보여준다.예약된 좌석은 1, 예약이 안된 자리는 0이다.  def printList(lst): for i in range(len(lst)): for j in lst[i]: print(j,end=' ') print()def isReserved(data,row,col): if (data[col][row]==0): return False else: return Trueseat=[[0 for _ in range(10)] for _ in range(10)]while True: print('--------------------\n1 2 3 4 5 6 7 8 9 10\n-----------------..
Python; 리스트 함축으로 공통 요소 추출하기a= [1, 2, 3, 4, 5]b= [1, 3, 3, 4, 5, 6, 7]print(list(x for x in a if x in b))list()를 통해서 공통인 요소를 담아서 출력할 리스트를 만들거임리스트 함축을 설명하겠음.for문으로 x에 a의 요소를 순서대로 담음. 근데 조건문에 의해서 x가 b요소중에 있을 때만 x를 추가할거임
Python; 리스트 함축 (List Comprehension)예제를 통해 리스트 함축을 알아봅시다. 앞과 뒤가 같은 문자열의 개수를 세야하는 상황이 주어졌을 때, 리스트 함축을 모르는 상태일 때는 다음처럼 작성할 것임lst=['aba','xyz','abc','121','789']cnt=0for i in lst: if(i[0]==i[-1]): cnt+=1print('앞과 뒤가 같은 문자열 개수: ',cnt) 만약 리스트 함축을 안다면 다음과 같이 사용할 수 있음lst1=['aba','xyz','abc','121']lst2=[w for w in lst1 if(w[0]==w[-1])]print('앞과 뒤가 같은 문자열 개수: ',len(lst2)) 위 코드처럼 리스트의 안에 for문과 if문을 작성할 수 있음위 코드를 설명하겠음먼저 w라는 변수가 리스트에 추가될 건데..
썸네일 Python; 터틀그래픽 10개의 랜덤한 원 그리기import randomimport turtlet = turtle.Turtle()t.shape('turtle')#t.speed(100)for i in range(10): #원 10개를 그리기 위한 반복문 t.pu() t.goto(random.randint(-300,300),random.randint(-300,300)) # -300~300 사이의 난수, x좌표와 y좌표로 이동 t.pd() t.circle(random.randint(1,100)) #원의 반지름을 1~100 사이의 난수로 그린다
썸네일 python; PI(파이) 근사값 구하기 (몬테카를로)몬테카를로 시뮬레이션은 반복된 무작위 추출을 이용하여 함수의 값을 수리적으로 근사하는 알고리즘이다.이를 통해 우리는 파이의 값을 추론할 수 있다. 한 변의 길이가 2인 정사각형 안에 내접하는 반지름이 1인 원이 있다고 생각해 보자.그러면 원의 넓이는 pi가 될 것이고, 정사각형의 넓이는 4가 될 것이다.원의 넓이 : 정사각형 넓이 = pi : 4 이므로, 따라서 pi=(원의 넓이)/(정사각형 넓이) *4이다. 점을 많이 찍을수록 정사각형과 원 안에 점이 많이 찍힐 것이므로 자연스레 근삿값도 정확해질 것이다.  이때 시각적으로 보기 위해 터틀그래픽을 이용한다.기본 준비: 정사각형과 원, x축과 y축을 그린다.def t_square(x, y, l): #(x,y)를 중점으로 하는 한 변의 길이가 l인 정사각형..
썸네일 python; 정적분을 활용하여 원뿔대 부피 구하기python; 위 원과 아래 원 크기가 다른 원기둥(원뿔대) 부피 구하기 (정적분 회전체 체적 활용) y=f(x)를 x축으로 회전시킨 회전체의 체적을 구하는 공식은 다음과 같다. $V_{x}=\pi\int_{a}^{b}\left\{ f(x)\right\}^{2}dx$ 적분을 계산하기위해 sympy 사용. import sympy as sy import math r1 = float(input('원1 반지름:')) sosomia01.tistory.com 윗 글의 2탄(?)입니다. 이번에는 sympy의 인테그랄을 사용하지 않고 정적분의 값을 사다리꼴로 쪼개서 더하는 방법으로 근사값을 구하였습니다. integrate의 n이 클수록 세분해서 계산하므로 근사값이 정확해집니다. import math def frustu..
썸네일 python; 2차 정방행렬(2X2)의 고윳값(고유치) 구하기고유특성다항식 및 특수한 형태일 때 고유치를 구해보자. Solution1: $A_{2X2}$ 의 고유특성다항식 ⇒ $\lambda^2-trace(A)+det(A)$ Solution2: $A=\begin{bmatrix} a & b \\ c & d \\ \end{bmatrix}$ 행렬 A에서 행 또는 열의 합이 같으면 그 합은 두개의 고유치 중 하나이며, 나머지 하나는 tr(A)가 고유치의 합과 같으므로 tr(A)에서 빼서 구한다. print("⌈a b⌉\n⌊c d⌋\n") a = int(input('a:')) b = int(input('b:')) c = int(input('c:')) d = int(input('d:')) def get_tr(m): res = 0 for i in range(len(m)): r..
썸네일 python; 근의공식 구현하기def quadratic_formula(a, b, c): # ax^2+bx+c=0 x = [0, 0] x[0] = (-b+(((b ** 2)-4*a*c)**0.5))/(2*a) x[1] = (-b-(((b ** 2)-4*a*c)**0.5))/(2*a) return x
썸네일 python; 3 6 9가 포함된 수를 별로 나타내기def digitcf(num): return list(map(int, str(num))) ct = 0 for i in range(1, 50): for j in range(0, len(digitcf(i))): if digitcf(i)[j] == 3 or digitcf(i)[j] == 6 or digitcf(i)[j] == 9: ct += 1 if ct != 0: print(i, "=", "*"*ct) else: print(i, "=", i) ct = 0 def Check369(num): resultV = [] i = 0 while(num != 0): resultV.insert(-i, num % 10) num = num//10 i += 1 return resultV 위 함수는 digitcf와 같은 내용 출력..
썸네일 python; 루트 근사값 구하기 (math 사용x, 뉴턴메소드)뉴턴 메소드를 이용한 근사값 구하기.print("√a의 근사값")a = float(input('a='))# f=x**2-a -> f'=2xx = []x.insert(0, a-((a**2-a)/(2*a)))for i in range(0, 5): x.insert(i+1, x[i]-(x[i]**2-a)/(2*x[i])))print(x[4])