본문 바로가기

분류 전체보기

[백준] 브루트포스(Brute Force) 알고리즘 Broute : 무식한Force : 힘 브루트포스 알고리즘은 완전탐색 알고리즘이라고도 하며, 가능한 모든 경우의 수를 모두 탐색하면서 결과를 도출한다.알고리즘 중에서 가장 단순하고 직관적인 방법으로, 반복문과 조건문을 써서 모든 방법을 다 시도하는 방법이 브루트포스 알고리즘이다.장점알고리즘의 설계 및 구현이 쉬움알고리즘의 정확도가 100% 보장된다.단점메모리 사용이 비효율적이다.알고리즘 실행시간이 오래걸린다.브루트 포스의 종류선형구조 : 순차 탐색비선형 구조 : 백트래킹, DFS, BFS브루트포스 알고리즘의 사용 조건문제에서 달성하고자 하는 솔루션이 잘 정의되어 있어야 한다.문제를 해결할 수 있는 풀이의 수가 제한되어 있어야 한다.⇒ 고려해야 할 풀이의 수가 무한하면 브루트포스 알고리즘은 효율적이지 않다.. 더보기
[백준] 알고리즘 복잡도 같은 결과를 내는 알고리즘에도 효율성의 차이가 생긴다. 알고리즘 수행 시작부터 결과 도출까지 걸리는 시간이 짧고, 컴퓨터 자원을 적게 사용하는 효율적인 알고리즘을 짜는 것이 중요하다.알고리즘을 평가할 때에는 시간복잡도와 공간복잡도를 사용한다시간 복잡도(Time Complexity) : 알고리즘의 수행시간을 평가공간 복잡도(Space Comlexity) : 알고리즘 수행에 필요한 메모리 양을 평가 점근적 표기법 - 시간복잡도를 나타내는 데에 사용Big-O 표기법 : 최악의 경우Big-θ 표기법 : 평균의 경우Big-Ω 표기법 : 최선의 경우평균인 세타 표기법을 사용하면 좋겠지만 평가하기가 까다롭다. 그래서 최악의 경우인 빅오를 사용해서 성능을 측정한다.  Big O 표기법O(g(n)) = {f(n) | 모.. 더보기
윤년알고리즘 Q. 주어진 년도가 윤년인지 아닌지 판단하는 코드를 작성하시오. 윤년이란?지구가 태양을 한 번 공전하면 1년이다. 365일 5시간 49분으로 돌기 때문에 4년이 지나면 이 시간은 약 하루가 더 생기게 된다. 이를 맞추기 위해 4년마다 2월을 하루 더 늘리는 해를 윤년이라고 한다. 하지만 이렇게 계산하면 또 매년 11분 정도가 초과되어 계산된다. 이는 131년이 지나면 또 다시 하루가 되기 때문에 대부분의 국가에서는 400년에 총 3일을 어림잡아 계산하여 100년마다 한 번 윤년을 없애고 400년 마다 다시 하루를 추가해 윤년을 계산한다.  윤년 알고리즘의 조건1. 4로 나누어 떨어지는 해는 윤년이다.2. 1단계에서 100으로 나누어 떨어지는 해는 평년이다.3. 2단계를 만족하지만 400으로 나누어 떨어지.. 더보기
Django로 CRUD 구현하기 Read읽기 기능 구현urls.py 파일에서 main page url을 view.index로 연결하도록 하였다. 서버를 구동시켰을 때 나타나는 페이지는 views.py 파일 안의 index 함수를 구현하면 된다.from django.shortcuts import render, HttpResponsetopics = [{'id':1, 'title':'routing', 'body':'Routing is ..'},{'id':2, 'title':'View', 'body':'View is ..'},{'id':3, 'title':'Model', 'body':'Model is ..'},]#클라이언트로 정보를 전송하기 위한 함수def index(request): global topics # 리스트 사용을 위해 g.. 더보기
Django 프레임워크 개념강의정리 생활코딩 Django 기초강의를 수강하며 정리한 내용이다. Django 시작하기가상환경 설치 밎 장고 설치 [Django] 01. 가상환경과 장고설치가상환경 생성과 장고 설치에 관한 포스팅을 진행하겠습니다!가상환경이란 무엇일까요? 저희가 사용할 장고는 파이썬 기판 웹 프레임워크입니다.어려운말은 다 떼고 파이썬을 사용하기 때문에velog.io 장고를 사용하려면 가상환경을 설치해서 실행해야 한다.파이썬 가상환경 여는 법cd chaein> cd Scripts > ./activate가상환경 끄는 법deactivate장고 설치pip install django프로젝트 시작django-admin startproject (프로젝트명) .->프로젝트 시작할 수 있다. 프로젝트에 필요한 설정파일들이 생성된다.구성 파일 설.. 더보기
파이썬 핵심 내장 자료구조 면접 질문으로 파이썬의 핵심 내장 자료구조 4가지에 대해 설명하라는 질문을 받았다. 파이썬의 기본 내장 자료구조에는 list, tuple, dictionary, set 4가지가 있다. 이러한 자료구조는 형태와 용도가 조금씩 다르다. 자료구조를 잘 사용하면 복잡하고 어려운 기능을 수월하게 구현할 수 있다.  listtupledictionaryset생성 시 사용하는 기호대괄호 [ ]소괄호 ( )중괄호 { }중괄호 { }특징- 타 언어의 array에 해당하는 기본적인 자료구조- 파이썬에서 문자열 편집은 tuple과 많이 유사- Key(찾고자 하는 값)와 Value(그 값이 의미하는 값) 쌍으로 요소가 이루어짐- 연관배열 (Associative array)- 자바의 객체(Hashmap) 구조와 유사하기 때문에 .. 더보기
내맘대로 파이썬 개념 정리 문자열 안에 변수 대치시키는 방법 3가지1. 문자열 앞에 f를 입력해서 formattinga = 9b = f”a의 값 : {a}”여러개 넣고 싶을 때,f“a의 값 :{a}, c의 값:{c}” 2. 문자열 포맷 코드(%) 사용 %s, %c, %d, %f 등등b = “a의 값 : %d” %a 3. format() 사용b = “a의 값 : {0}”.format(a)여러개 넣고 싶을 때,“a의 값 : {0}, c의 값 : {1}”.format(a,c) if 문의 나열 순서가 중요하다.나열 순서에 따라 코드가 간결해지는 정도가 달라지기 때문이다.많이 나올 수 있는 빈도순서대로 나열하는 것이 효율적 입력받은 숫자리스트를 int형 리스트로 바로 받기arr = list(map(int,input().split())) t.. 더보기
[코드트리 조별과제] 4주차 학습 레포트 이번 주에는 프로그래밍 연습의 chap4~5인 시뮬레이션1, 시뮬레이션 2 문제를 풀었다. Chap4 시뮬레이션1날짜 및 시간계산날짜를 계산하는 문제에서, 각 월마다 몇 일이 있는 지를 배열로 저장하면 코드를 간결하게 구현할 수 있다.# 2월 5일부터 4월 1일까지 흐른 시간 시뮬레이션month, day = 2, 5elapsed_days = 0# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.num_of_days = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]while True: if month == 4 and day == 1: break elapsed_days += .. 더보기