일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 자바스크립트
- userprog
- 프로그래머스
- 핀토스
- CSS
- 크래프톤정글
- 정보처리기사
- Flutter
- HTML
- 사이드프로젝트
- 4기
- 모션비트
- 리액트
- 코드트리
- 시스템콜
- 스택
- defee
- 소켓
- Vue.js
- 백준
- JavaScript
- 큐
- 나만무
- corou
- pintos
- 자바
- Java
- 알고리즘
- TiL
- 크래프톤 정글
- Today
- Total
목록알고리즘 (6)
문미새 개발일지
1번 문제 - 삽입정렬 연결리스트 함수 int insertSortedLL(LinkedList *ll, int item) { /* add your code here */ // 현재 노드와 새 노드를 선언하고 index를 0으로 초기화 ListNode *cur; ListNode *newNode; int index = 0; // 현재 노드에 리스트의 첫 노드값을 넣고 cur = ll->head; // 현재 노드가 값이 있는 동안 while(cur != NULL) { // 만약 현재 노드의 값이 입력된 값과 같으면 -1을 반환 if(cur->item == item){ return -1; } cur = cur->next; } // 현재 노드를 리스트의 첫 노드로 넣기 cur = ll->head; // 연결리스트의..

그리디 알고리즘(Greedy algorithm) - 탐욕법 가장 직관적인 형태의 알고리즘이며, 눈 앞에 보이는 최적의 상황만을 쫓는 알고리즘이다. 항상 최적의 결과를 뽑지는 못하지만, 확률 상 최적의 결과에 근사한 값을 빠르게 구할 수 있다. 즉, 특정한 상황에서 최적의 해를 보장하는 극한의 효율충 알고리즘 효율충인만큼 자원에 접근할 때 무조건 큰 경우, 긴 경우 등의 조건으로 문제를 극단적으로 접근하기 때문에 정렬 기법이 함께 사용되는 경우가 많다. 예시는 크루스칼 알고리즘으로 '모든 간선을 정렬한 이후에 짧은 간선으로 연결하는' 최소 신장 트리 알고리즘이 있다. 예시 문제로 일정 금액을 동전을 사용하여 낼 때 최소한의 개수로 낼 수 있는지 확인하는 문제 import sys # 금액을 입력받고 n = ..
수 정렬하기 n개의 수가 주어졌을 때, 오름차순으로 정렬하고 중복은 제거해야 한다. n = int(input()) arr = [] result = [] # 입력값 받아 arr배열에 넣기 for i in range(n): arr.append(int(input())) # 배열의 앞 뒤를 하나씩 비교해 앞이 뒤보다 크면 값을 바꾸기 for i in range(len(arr)-1): for j in range(i+1, len(arr)): if arr[i] > arr[j]: arr[i], arr[j] = arr[j], arr[i] else: continue # 중복 제거, arr안에 i값이 없으면 result배열에 넣기 for i in arr: if i not in result: result.append(i) f..

소수 1보다 큰 자연수 중 1과 자신만을 약수로 가지는 수 ex) 11은 1x11로만 성립되기 때문에 소수 에라토스테네스의 체 임의의 자연수 n에 대해 그 이하의 소수를 찾는 가장 효율적으로 소수를 찾는 방법이다. 순서(100 이전의 소수를 모두 찾기) 1을 먼저 제거 2를 제외한 2의 배수 모두 제거 3을 제외한 3의 배수 모두 제거 5를 제외한 5의 배수 모두 제거 7을 제외한 7의 배수 모두 제거 ... 등 제거하고 남은 제일 낮은 수의 배수를 모두 제거하면 소수만 남는다. 일정 범위 내에서 구하기는 이 방법이 좋지만 특정 값이 소수인지 판별하는건 다른 알고리즘이 더 빠르다. 주어진 N개 중에 소수가 몇 개인지 찾기 주어진 N개의 소수를 받아 그 안에 소수가 몇 개인지 찾아야 한다. import..
공부한 것 - 컴파일 시스템 - 1주차 공부 키워드 - 1 배열, 문자열, 반복문과 재귀 함수, 복잡도(BigO,시간,공간), 정렬, 완전 탐색, 정수론 컴파일 시스템 - 소스코드를 기계어로 변환하는 과정을 담당하는 프로그래밍 도구 소스 코드(main.cpp) #include int main() { std::cout
미니프로젝트가 끝나고 오늘부터 알고리즘 이론 학습 및 정글에서 선정해준 코테 문제를 풀기 시작했다. 파이썬은 문법들이 간결하게 나와있어 처음 코딩을 접하는 사람들에겐 좋을 것 같아 열심히 학습 중이다. 하지만 정글의 다른 동기들의 말을 들어보면 기존에 사용하던 언어가 습관이 되어 파이썬의 문법과 헷갈려서 작성하기 까다롭다고 하더라 오늘 푼 문제를 전부 올리는건 너무 길어질 것 같고 어려웠거나 헷갈렸던 문제들만 작성하려고 한다. 1. 백준 2739번 구구단 gugu = int(input()) for i in range(1, 10): print(gugu, "*", i, "=", gugu*i) 입력받는 n값의 구구단을 출력하는 문제여서 생각보다 쉬운 문제였지만 출력할 때의 문법이 기존의 언어들과 달라 ..