a보호된 글입니다. rpi code보호된 글입니다. 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; 리스트 함축으로 공통 요소 추출하기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를 추가할거임 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; 배열 정렬 알고리즘 (버블 정렬, 삽입정렬, 퀵 정렬, 힙 정렬, 병합 정렬)배열의 데이터를 특정 순서로 나열하는 정렬 알고리즘은 프로그램의 성능과 효율성에 큰 영향을 미친다. 대표적인 정렬 알고리즘 5가지의 원리와 구현 방법을 설명한다.버블 정렬 (Bubble Sort)버블 정렬은 인접한 두 원소를 비교하여 조건에 맞지 않으면 자리를 바꾸는 과정을 반복하는 방식이다. 정렬 과정에서 큰 값이 마치 거품이 올라오는 것처럼 배열의 끝으로 이동한다고 하여 이름 붙여졌다.원리: 첫 번째 원소부터 마지막 원소까지 인접한 원소와 비교하며 교환 작업을 수행한다. 한 회전이 끝나면 가장 큰 원소가 배열의 마지막 위치로 확정된다.평균 시간 복잡도: $O(n^2)$특징: 구현이 매우 단순하지만, 데이터의 양이 많아질수록 성능이 급격히 저하됨.#include void ascBubbleSort(int.. python; PI(파이) 근사값 구하는 과정 시각화해보기(with Turtle)PI(파이) 근사값 구하는 과정 시각화해보기(with Turtle)몬테카를로 시뮬레이션은 반복된 무작위 추출을 이용하여 함수의 값을 수리적으로 근사하는 알고리즘이다. 이를 통해 우리는 파이(π)의 값을 추론할 수 있다.한 변의 길이가 2인 정사각형 안에 내접하는 반지름이 1인 원이 있다고 생각해 보자. 그러면 원의 넓이는 π가 될 것이고, 정사각형의 넓이는 4가 될 것이다.원의 넓이 : 정사각형 넓이 = π : 4이 비례식에 따라 π = (원의 넓이 / 정사각형 넓이) * 4가 성립한다. 무작위 점을 많이 찍을수록 전체 점의 개수 대비 원 안에 찍힌 점의 개수가 넓이의 비에 수렴하게 되므로, 점이 많아질수록 근사값은 정확해질 것이다.이 과정을 시각적으로 확인하기 위해 터틀 그래픽을 이용한다.1. 기본 준.. C언어; 최대공약수 구하기 총정리 (4가지 방법)약수를 이용한 방법가장 직관적인 방법으로, 1부터 두 수 중 작은 수까지 모든 정수로 나누어 보며 공통된 약수를 찾는 방식이다. 두 수의 공약수는 항상 두 수 중 작은 수의 약수 범위 내에 존재한다는 수학적 성질을 이용한다.원리: 두 수 $a$와 $b$를 동시에 나누어 떨어뜨리는 수 중 가장 큰 값을 선택한다. 반복문을 통해 작은 값부터 검사하여 tmp에 저장하면 최종적으로 가장 큰 공약수가 남는다.특징: 알고리즘이 매우 단순하여 구현이 쉽지만, 숫자가 커질수록 연산 횟수가 정비례하여 늘어나는 단점이 있다.#include int main() { int a, b, tmp = 1; scanf("%d %d", &a, &b); int min = (a 두 수의 차이를 이용한 방법두 수의 차이가 최.. 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.. 이전 1 2 3 다음