전체 글 - Table of Contents332 👐 Primality Test ※ 소수(Prime Number) = 1과 자기 자신으로만 나누어지는 수 ※ 1. 약수의 개수 👐 ① 2~(N-1) 까지 모두 돌렸을 때 나머지가 0이 아니다 ② 약수의 개수가 2 def isPrime1(N): for i in range(2,N): if N%i == 0: return False return True def isPrime2(N): cnt = 0 for i in range(1,N+1): if N%i == 0: cnt += 1 if cnt == 2: return True else: return False → 위 두 풀이는 모두 O(N) 모든 범위를 돌며 일일이 확인 2. O(N^(1/2)) 👐 ③ 탐색 범위 N^(1/2)으로 줄이기 → 위와 동일하되 시간복잡도 O(N^(1/2)). 나누어지는 .. Computer Science/Algorithms 2023. 8. 8. 📚 Map Mapfundamentals → dictionaries are indexed by keys, which can be any immutable type; strings and numbers can always be keys. / map data structure is defined as a data structure that stores a collection of key-value pairs, where each key is associated with a single value / maps provide an efficient way to store and retrieve data based on a unique identifier(the key) → Tuples can be used as keys .. Computer Science/Data Structures 2023. 8. 3. 🪴Insertion Sort orders ★ 앞쪽에 있는 원소들이 이미 정렬되어 있다고 가정하고, 뒤 쪽에 있는 원소를 앞쪽에 있는 원소들 중에 들어갈 적절한 위치를 판단하고 삽입 ★ ① 정렬할 데이터 준비 (오름차순 가정) → 맨 왼쪽 첫번째 데이터 7은 그 자체로 정렬이 되었다고 판단하고, 두번째 데이터인 5가 7의 왼쪽으로 갈지, 오른쪽으로 갈지 판단(=5가 왼쪽의 어느 파트에 들어갈 지 판단) 7 5 9 0 3 1 6 2 4 8 ② 오름차순을 가정하였으므로 5가 7의 왼쪽으로 이동하겠다고 판단! 5 7 9 0 3 1 6 2 4 8 ③ 이어서 9가 어떤 위치로 들어갈 지 판단 → 9의 경우는 5의 왼쪽으로 들어갈 지, 5와 7사이에 들어갈 지, 아니면 7 오른쪽으로 들어갈 지 들어갈 수 있는 3개의 후보 중에서 판단 → 맨 왼.. Computer Science/Algorithms 2023. 7. 28. ★Sorting Advanced I - 5 Solved★ ★ 1083 소트 ★ import sys input=sys.stdin.readline N=int(input()) arr=list(map(int,input().split())) S=int(input()) for i in range(N): subarray_max = max(arr[i:i+S+1]) if arr[i] != subarray_max: subarray_max_index = arr.index(subarray_max) for j in range(subarray_max_index-i): arr[subarray_max_index-j], arr[subarray_max_index-j-1] = arr[subarray_max_index-j-1], arr[subarray_max_index-j] S-=(subarra.. BOJ/🥇 2023. 7. 28. 🥭Selection Sort orders ★ 처리되지 않은 데이터 중에서 가장 작은 데이터를 선택해 맨 앞에 있는 데이터와 바꿈 (오름차순 정렬 가정) ★ ① 정렬할 데이터 준비 (7 5 9 0 3 1 6 2 4 8) ② 처리되지 않은 데이터(7부터 8 전체) 중 가장 작은 0을 선택해 맨 앞의 7과 바꾼다. 7 5 9 0 3 1 6 2 4 8 (0과 7을 바꾼다) 0 (5 9 7 3 1 6 2 4 8) ③ 처리되지 않은 데이터(위 괄호 5부터 8) 중 가장 작은 1을 선택해 가장 앞의 5와 바꾼다. 0 5 9 7 3 1 6 2 4 8 (1과 5를 바꾼다) 0 1 (9 7 3 5 6 2 4 8) ④ 처리되지 않은 데이터가 맨 오른쪽 1개가 있을 때까지 반복한다(맨 마지막 1개의 데이터는 자동 정렬됨) 0 1 2 3 4 5 6 7 8.. Computer Science/Algorithms 2023. 7. 26. C Basics 5/ (열혈 프로그래밍) 😙 점점 C언어 기초가 끝나간다. 다차원 배열부터 포인터의 포인터, void 포인터까지 16장부터 20장까지의 내용을 다룬다. 16. 다차원 배열 ① 2차원 배열 / 선언 / 접근 / sizeof ex) 세로가 3, 가로가 4인 int형 2차원 배열 선언은 int arr1[3][4]; (세로가 3, 가로가 4인 2차원 배열) ex) 여러 배열의 형태 → sizeof 연산자를 사용하면 2차원 배열의 크기를 계산할 수 있다. 세로 길이 x 가로 길이 x 자료형 크기로 배열의 크기가 나온다. #include int main(void) { int arr1[3][4]; int arr2[7][9]; printf("arr1 size: %d\n",sizeof(arr1)); //arr1 size: 48 printf("a.. C, C++/Fundamentals 2023. 7. 26. C Basics 4/ (열혈 프로그래밍) 🫡 네번째 포스팅부터는 C언어 심화 개념을 본격적으로 나간다! 점점 흥미있어지는 C언어! 두 번째 파트 11장부터 15장까지 정리했다. 11. 1차원 배열 ① 배열이란? → 다수의 데이터를 저장하고 처리하는 경우 유용하게 사용할 수 있는 것. 여러 개의 변수를 저장할 필요 없이, 한 번에 많은 수의 변수 선언 및 저장 가능! ② 1차원 배열 선언 & 접근 → 필요한 것: 배열이름, 자료형, 길이정보 ex) int arr1[7]; : int형 변수 4개로 이루어진 배열을 만들고, 그 배열의 이름은 arr1로 한다는 뜻이다. int형 변수 4개가 나란히 선언되었고, 실제로 배열을 이루는 요소들(변수들)의 주소 값을 확인 해보면 나란히 배치되어 있다. ex) float arr2[10]; double arr3[.. C, C++/Fundamentals 2023. 7. 5. C Basics 3/ (열혈 C프로그래밍) 😵 이번 세 번째 포스팅에서는 본격적인 코딩을 위한 다양한 분기문 / 반복문을 배우자! 그리고 함수까지 배우며 Part 01을 마무리하려 한다! 6장부터 10장까지 다룰 예정! 6. printf함수와 scanf함수 정리하기 ① 여러 특수문자의 출력 → 큰 따옴표 자체의 출력을 원하면 앞에 \를 붙여준다. → \n은 개행 → \\ 역슬래쉬 자체를 출력 → \'은 작은 따옴표를 출력 → \t는 수평 탭 효과 ② printf의 f는 formatted(서식이 지정된) 형태의 출력을 뜻한다. %d는 10진수 정수로 출력, %X는 16진수로 출력(알파벳은 대문자) %x는 16진수로 출력(알파벳은 소문자) 서식문자 출력 대상(자료형) 출력 형태 %d char, short, int 부호 있는 10진수 정수 %ld lo.. C, C++/Fundamentals 2023. 6. 27. C Basics 2/ (열혈 C프로그래밍) 🥸 저번 포스팅에서 1장부터 3장까지 다루었다. 이번 포스팅에서는 4장부터 5장까지 다루자! 4. 데이터 표현방식의 이해 ① 진법의 이해 → 2진수는 두 개의 기호(0과 1)를 이용해 데이터를 표현하는 방식. 컴퓨터는 2진수를 기반으로 데이터를 표현하고 연산 진행 → 이와 유사하게 10진수는 10개의 기호 / 16진수는 16개의 기호(1부터 10까지의 숫자 + A ~ F 대소문자 구분 x)를 사용 ex) 즉 10진수로 10은 16진수로 A로 표현하고 / 10진수로 17은 16진수로 11로 표현한다 Q. 16진수가 필요한 이유? → 2진수로만 표현하면 데이터의 길이가 길어지므로 한눈에 파악하기 어려움. 따라서 2진수 네 개는 16진수 1개로 간결히 표현 가능하므로 16진수를 많이 사용 ② 데이터의 표현 단.. C, C++/Fundamentals 2023. 6. 26. C Basics 1/ 😍 처음으로 배웠던 C언어, 이제 끝까지 모든 개념을 제대로 정립한다는 의미로 진행해보자1. 이것이 C언어다① 컴파일러는 인간이 작성한 C언어를 컴퓨터가 이해할 수 있는 기계어로 바꿔주는 역할을 담당한다. 즉 프로그래밍 언어란 사람과 컴파일러가 이해할 수 있는 약속된 형태의 언어 Q. What best describes the role of a compiler?(A) Debug one's code(B) Run the written program(C) Distinguish between functions and arguments(D) Turn source code into machine code ② C언어의 특징→ 절차지향성) 정해진 순서의 실행흐름을 중시. 인간의 일반적인 생각방식에 가까움→ 이식성이 .. C, C++/Fundamentals 2023. 6. 25. C fundamentals (1) ✊ C언어의 기초 본격적인 시작! 1) fundamentals //text-based language #include // in order to access printf function int main(void) { printf("Hello World\n"); return 0; } // source code -> compiler -> machine code(a.out & hello) → clang이라는 C언어 컴파일러를 사용해 main.c라는 C언어 파일을 컴파일한다 → 컴파일 결과 자동으로 a.out이라는 실행파일 생성 → 실행파일이므로 machine code, 즉 0과 1로 구성된 code이다 → .은 내가 현재 있는 위치, 현재 위치의 a.out 실행파일을 생성하기 위해 ./a.out 명령어 사용 .. C, C++/Fundamentals 2023. 6. 16. HTTPS(수정중) 1. What is HTTPS / SSL / TLS / CA ? ★ HTTPS ★ : a secured version of HTTP. when the exchange of data is encrypted with SSL/TLS, we call it HTTPS ('S' stands for secure) ① Privacy: no one can eavesdrop on messages ② Integrity: the message is not manipulated on the way to its destination ③ Identification: can check that the message is coming from computer(a digital signature) → HTTPS, via SSL cert.. Front-end/Internet 2023. 4. 12. 이전 1 ··· 6 7 8 9 10 11 12 ··· 28 다음