분류 전체보기

    [Algorithm] 전위/중위/후위 표기법(prefix/infix/postfix)

    [Algorithm] 전위/중위/후위 표기법(prefix/infix/postfix) 수식 표기법의 종류 * 연산자: +, -, *, ... 피연산자: 1, 2, 3, ... 1. 전위 표기법 (ex. +AB) 연산자를 먼저 표시하고 연산에 필요한 피연산자를 나중에 표기하는 방법. 2. 중위 표기법 (ex. A+B) 연산자를 두 피연산자 사이에 표기하는 방법으로 가장 일반적으로 사용되는 표현 방법. 이항 연산자 표현이 적합하다. 3. 후위 표기법 (ex. AB+) 피연산자를 먼저 표시하고 연산자를 나중에 표시하는 방법. 컴파일러가 사용하는 것으로 스택을 사용하는 예들 중 가장 빈번하게 등장. 수식 표기법의 변환 1. 중위 -> 전위 중위 표기법으로 표기된 3+2+4*5+3/1 를 전위 표기법으로 바꿔본다...

    [BaekJoon]백준 2493번 탑

    [BaekJoon]백준 2493번 탑 문제: https://www.acmicpc.net/problem/2493 내코드 - 처음엔 정석대로 모든 입력값을 stack에 넣어서 top부터 차례대로 밑에것들이랑 비교하려고함. 그렇게 하면 더 복잡하단걸 깨달음. - stack과 pair를 이용함. stack에는 차례대로 입력을 받고, pair에는 입력값과 index값을 순서대로 저장함. - n개의 탑이 있을때 가장 왼쪽에 있는 것부터 차례대로 입력을 받음(ex. 69574) - 우선 첫번째 6이 들어왔을때 stack이 비어있는지 확인하고 비어있으니 0 출력, 출력후 (1, 6) pair로 stack에 쌓음. - 두번째 9가 들어왔을때 stack이 비어있는지 확인하고 안비어있으니 while문으로 들어가서 top의 ..

    [Baekjoon]백준 2504번 괄호의 값

    백준 2504번 괄호의 값 문제: https://www.acmicpc.net/problem/2504 내코드 - A(B+C) = A*B + A*C 를 활용 - 변수 mul에 곱해야 하는 값을 저장해두고 (가 추가되면 *2, [가 추가되면 *3을 해줌 - ), ]가 나오면 두가지로 나눠서 생각 - 앞에가 (,[이면 바로 숫자로 바꿔서 mul값을 곱해준후 pop, 그 후 위에서 곱해준 2, 3의 값을 나눠준후 다시 밑에서 () = 2, [] = 3 값을 곱해줘야하니 별다른 처리 안하고 sum += mul; - 앞에가 (,[이 아니면 error체크만 해준뒤 pop해준 후 mul값을 2,3으로 다시 나눠줌. - 만약 스택이 비어있으면 괄호가 닫힐수가 없으므로 error - input 값에서 i가 ), ]일때 i-..

    [BaekJoon] 백준 10799번 쇠막대기

    [BaekJoon] 백준 10799번 쇠막대기 문제: https://www.acmicpc.net/problem/10799 내코드 - '('가 들어오면 stack에 push해준다. - ')'가 들어오면 바로 앞이 '('인 경우 레이저 임으로 stack에 쌓인 값을 result에 더해주고 바로 앞이 ')'인 경우 막대기 이므로 result++ 해준다. #include #include using namespace std; int top = 0; int result = 0; int main(void) { ios::sync_with_stdio(false); cin.tie(0); string arr; cin >> arr; int n = arr.length(); for (int i = 0; i < n; i++) { ..

    [PHP] 데이터 정제

    사용한 주요 함수 iconv_substr : iconv는 인코딩 문제 때문에 추가, substr함수는 문자열 일부 추출하는 함수 preg_replace : 문자열 일부를 교체하는 함수 is_numeric : 해당 문자열이 숫자인지 확인하는 함수 explode : delimeter를 기준으로 나눠서 array에 저장하는 함수 isset : 해당변수가 정의되었는지 확인하는 함수 strpos : 찾고자 하는 문자열이 해당 문자열에 포함되어 있는지 확인하는 함수, 리턴값 조심.

    [Django/Blog] DB에서 데이터를 가져와 템플릿에 적용

    View & Model & Template view는 모델과 템플릿을 연결하는 역할. 일반적으로 뷰가 템플릿에서 모델을 선택하도록 만들어야함. blog/views.py from django.shortcuts import render from django.utils import timezone from .models import Post # Create your views here. def post_list(request): posts = Post.objects.filter(published_date__lte=timezone.now()).order_by('published_date') return render(request, 'blog/post_list.html', {'posts': posts}) - fr..

    [Django/Blog] Django ORM & QuerySets

    Django ORM ORM(Object-Relational Mapping)이란 객체(Object)와 관계형 DB(Relational Database)의 데이터를 매핑(mapping)해주는 것을 의미한다. 객체 간의 관계를 바탕으로 SQL을 자동으로 생성해서 SQL 쿼리문 없이도 DB의 데이터들을 다룰 수 있다. ORM을 사용하면 불필요하게 많이 적지 않아도 되니 빠르게 개발이 가능하고, 생산성이 좋아진다. Django ORM은 model class를 통해서 객체를 만들고 이 객체를 통해서 DB에 접근한다. 쿼리셋 (QuerySet) 전달받은 모델의 객체 목록. 쿼리셋은 DB로부터 데이터를 읽고, 필터를 걸거나 정렬을 할 수 있음. #django interactive console (myvenv) ~/dj..

    [Django/Blog] View / Template

    View 앱의 logic을 넣는 곳. 모델에서 필요한 정보를 받아와서 템플릿에 전달하는 역할. blog/views.py from django.shortcuts import render # Create your views here. def post_list(request): return render(request, 'blog/post_list.html', {}) - post_list 라는 함수는 request를 넘겨받아 render 메서드를 호출. 이 함수는 render 메서드를 호출하여 받은 return 값인 blog/post_list.html 템플릿을 보여줌. Template 서로 다른 정보를 일정한 형태로 표시하기 위해 재사용 가능한 파일. 장고의 템플릿 양식은 HTML을 사용. 템플릿 생성 //bl..