C언어; 달팽이 배열 이해하기달팽이 배열 문제 설명문제달팽이 배열을 만들어서 이를 출력하는 프로그램을 작성하고자 한다.여기서 말하는 달팽이 배열은 다음과 같다예시4x4 배열1 2 3 412 13 14 511 16 15 610 9 8 75x5 배열1 2 3 4 516 17 18 19 615 24 25 20 714 23 22 21 813 12 11 10 9요구사항프로그램 사용자로부터 하나의 숫자 n을 입력받는다.입력된 n에 해당하는 n * n 크기의 달팽이 배열을 생성한다.달팽이 배열을 출력하는 프로그램을 작성하시오.입/출력 예시입력 예시4출력 예시1 2 3 412 13 14 511 16 15 610 9 8 7코드 분석직관적으로 구현..
NextJS; FullPage.js를 직접 컴포넌트로 만들어보기서론Page들 각각의 전체가 스크롤 되는 기능을 구현할 것이므로 FullScroll로 컴포넌트를 네이밍함. 컴포넌트 제작 전 구상컴포넌트의 자식요소로 페이지(Section)들을 받아서 Slide처럼 나타낼 예정.모바일에서는 스크롤할 수 없으므로 터치이벤트를 통해 기능 구현 예정.각 섹션은 부모 컨테이너의 너비와 높이를 100% 차지해야 한다.휠 스크롤과 터치 스크롤로 섹션을 자연스럽게 이동할 수 있어야 한다.한 번에 하나의 섹션만 이동해야 한다.섹션 이동 시 body의 스크롤을 비활성화하여 흔들림을 방지해야 한다. 직면한 문제문제 1: 트랙패드에서 여러 섹션이 이동트랙패드에서 휠 이벤트가 연속적으로 발생하여 여러 섹션이 이동하는 문제 발생.해결:deltaY 값이 일정 범위 이상일 때만 스크롤 이동.isS..
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] = {}; ..