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라는 변수가 리스트에 추가될 건데..
C언어; 10진수를 2진수로 변환하는 알고리즘#include int dec2bin(int decimal){ int binary[50], cnt = 0, result = 0; while (decimal != 0) { binary[cnt] = decimal % 2; decimal /= 2; cnt++; } while (cnt > 0) { result = result * 10 + binary[--cnt]; } return result;}int main(){ int dec; printf("10진수 입력: "); scanf("%d", &dec); printf("%d\n", dec2bin(dec)); return 0;} 간단한 코드이므로 설..
C; 배열 정렬 알고리즘 (버블 정렬, 삽입정렬, 퀵 정렬, 힙 정렬, 병합 정렬)배열을 정렬하는 알고리즘은 많다.그중에서도 유명한 정렬 방법들 몇 개를 설명하겠다. 1. 버블 정렬 (Bubble Sort)평균 시간 복잡도: $O(n^2)$특징: 매우 단순하고 이해하기 쉬운 정렬 알고리즘임. 효율성 측면에서 매우 비효율적. 배열의 크기가 큰 경우 매우 느림.코드:#include void ascBubbleSort(int arr[], int len);void desBubbleSort(int arr[], int len);void printArray(int arr[], int size);int main() { int arr[10] = {1, 5, 2, 9, 7, 8, 3, 10, 6, 4}; int arrLen = sizeof(arr) / sizeof(int); printf..
썸네일 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인 정사각형..
C언어; 최대공약수 구하기 총정리 (4가지 방법)1. 최대공약수를 구하는 방법 1) 약수를 이용하여 구하기 2) 두 수의 차이를 이용하여 구하기 3) 유클리드 호제법을 이용하여 구하기 4) 소인수분해를 이용하여 구하기 2. 방법 별 구현 코드 예시 1-1) 약수를 이용한 방법 int a, b, tmp; scanf("%d %d", &a, &b); for (int i = 2; i GCD: b[n+1] b[n+2]==1 -> GCD: 1 ------------------------- b[0] b[1] b[2]=b[0]%b[1] b[3]=b[1]%b[2] ⋮ b[n+2]=b[n]%b[n+1] b[n+2]==0 -> GCD: b[n+1] b[n+2]==1 -> GCD: 1 아래 코드는 위의 구상을 토대로 보기 편하게 작성해 보았다. int a[5] = {}; ..
Flutter; GestureDetector의 onTapUp 오류(onTapDown 유지되는 오류) 해결방법GestureDetector를 사용하던 중 onTapUp과 onTapDown만 사용하던 중 불편한 점을 발견. 불편한 점이 무엇이냐면 보통의 상황에서는 눌렀다 떼면 원하는 기능이 잘 작동한다. 그러나 TapDown상태에서 손가락을 끌어서 나중에 놓는 경우 onTapUp이 작동하지 않음. class MyApp extends StatefulWidget { const MyApp({super.key}); @override State createState() => _MyAppState(); } bool isClickedBtn1 = false; class _MyAppState extends State { @override Widget build(BuildContext context) { return Material..
Flutter; ElevatedButton으로 클릭 효과 구현 (MaterialStateProperty)클릭시 눌리는 효과(버튼이 크기가 약간 줄어드는 효과)를 구현하기 위한 방법. 설명 생략. ElevatedButton( onPressed: () { //TODO: ClickEvent }, style: ButtonStyle( alignment: Alignment.center, shape: MaterialStateProperty.all( RoundedRectangleBorder( borderRadius: BorderRadius.circular(10), ), ), overlayColor: MaterialStateProperty.resolveWith( (states) => Colors.transparent), padding: MaterialStateProperty.all( const EdgeInsets.symm..