컴퓨터 공학 분야 별 지식 28

스택(stack), DFS(깊이 우선 탐색), 이분 그래프, 백준 1707 파이썬

1. 스택 삽입과 삭제가 LIFO(후입선출) 방식으로 이루어진 자료구조 구현 방법 0번 강의에서 언급했듯이 파이썬에선 리스트로 간단하게 스택 구현이 가능 리스트 이름이 s일때 s.appped(data): top 위치에 새로운 데이터를 삽입하는 연산 s.pop(): top 위치에 현재 있는 데이터를 삭제하고 확인하는 연산 s[-1]: top 위치에 현재 있는 데이터를 단순 확인하는 연산 쓰이는 곳 DFS 쌍이 맞아야 하는 문제(괄호 여닫기 등) 2. DFS 그래프: 노드(정점)와 에지(간선)로 이루어진 자료구조 그래프의 시작 노드에서 출발하여 탐색할 한 쪽 분기를 정하여 최대 깊이까지 탐색을 마친 후, 다른 쪽 분기로 이동하여 다시 탐색을 수행하는 그래프 완전 탐색 알고리즘 시간 복잡도(노드 수: V, 에..

BOJ 백준 2559번 문제 <수열> python, 문제 해석 및 풀이

https://www.acmicpc.net/problem/2559 2559번: 수열 첫째 줄에는 두 개의 정수 N과 K가 한 개의 공백을 사이에 두고 순서대로 주어진다. 첫 번째 정수 N은 온도를 측정한 전체 날짜의 수이다. N은 2 이상 100,000 이하이다. 두 번째 정수 K는 합을 구하기 www.acmicpc.net 문제에 대한 간단한 이해 수열이 주어졌을때 연속된 몇개의 수열 합의 최댓값을 구하는 문제입니다. 입출력에 대한 이해 수열과 수열의 길이, 몇개의 연속된 숫자일지가 주어집니다. 문제에 대한 세부 이해 1. 주어진 것(입력값) 2. 구하고자 하는 것(출력값) 둘 다 위와 같습니다. 3. 규칙 몇개의 수열이 연속될지에 따라 합을 구해야 하는 수열의 개수가 달라집니다. - 첫 번째 방법으로는..

프로그래머스 연습문제 Lv. 1 <과일장수> python, 문제 해석 및 풀이

처음으로 스터디원들과 함께하는 공통 문제를 풀어보았다~ 난이도는 가볍게 Lv 1! https://school.programmers.co.kr/learn/courses/30/lessons/135808 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제에 대한 간단한 이해 값어치가 다른 과일을 상자로 묶어 최저가로 판매하는 문제입니다. 입출력에 대한 이해 과일의 최댓값 k, 상자안의 사과 갯수 m, 그리고 사과값이 들어있는 리스트가 주어지고 이를 통해 최대 판매 가격을 도출합니다. 문제에 대한 세부 이해 1. 주어진 것(입력값) 과일의 최댓값 k, 상자안의 ..

BOJ 백준 2003번 문제 <수들의 합 2> python, 문제 해석 및 풀이

그동안 시간이 없어서 블로그를 잠시 쉬었는데 다시 시작해보려 한다. (사람들이랑 하는 챌린지는 코드업 기초 100제 중 어려운 문제 풀면서 계속했는데 너무 많이 쉽더라... 백준 실버문제도 안 되는 느낌) 오늘 푼 문제는 함께 스터디하는 사람 중 한명이 먼저 푸신 수들의 합 2다. https://www.acmicpc.net/problem/2003 문제에 대한 간단한 이해 수열이 주어지고 그 수열 안에서 연속적으로 이어지는 부분 수열이 어떤 숫자를 만족하는 경우의 수 구하기입니다. 입출력에 대한 이해 수열의 길이, 만족해야할 숫자, 그리고 수열이 주어집니다. 문제에 대한 세부 이해 1. 주어진 것(입력값) 수열 2. 구하고자 하는 것(출력값) 경우의 수 3. 규칙 중요한 것은 항상 내부에서 이어져 있어야 ..

BOJ 백준 1935번 문제 <후위 표기식> python, 문제 해석 및 풀이

1935번: 후위 표기식2 첫째 줄에 피연산자의 개수(1 ≤ N ≤ 26) 가 주어진다. 그리고 둘째 줄에는 후위 표기식이 주어진다. (여기서 피연산자는 A~Z의 영대문자이며, A부터 순서대로 N개의 영대문자만이 사용되며, 길이 www.acmicpc.net 문제에 대한 간단한 이해 - 후위 표기식 계산 문제입니다. 입출력에 대한 이해 - 후위 표기식이 들어오면 연산하여 값을 출력해줍니다. 문제에 대한 세부 이해 1. 주어진 것(입력값) 후위 표기식 2. 구하고자 하는 것(출력값) 연산 결과값 3. 규칙 - 후위 표기식은 피연산자들 + 연산자들 뭉텅이로 구성됩니다. - 한 뭉텅이에서 가장 먼저 연산되어야 할 연산자가 가장 앞에 옵니다. - 후위 표기식에 대한 예시를 보았을 때 계산이 피연산자가 나온 후 가..

BOJ 백준 4949번 문제 <균형잡힌 세상> python, 문제 해석 및 풀이

뭐 풀다가 고민하다가 문제집에 있던 것 중 이름에 끌려서 도전하게 되었다. https://www.acmicpc.net/problem/4949 4949번: 균형잡힌 세상 하나 또는 여러줄에 걸쳐서 문자열이 주어진다. 각 문자열은 영문 알파벳, 공백, 소괄호("( )") 대괄호("[ ]")등으로 이루어져 있으며, 길이는 100글자보다 작거나 같다. 각 줄은 마침표(".")로 끝난다 www.acmicpc.net 문제에 대한 간단한 이해 - 양쪽 괄호가 짝이 맞는지 확인하는 프로그램을 만들어야 합니다. 입출력에 대한 이해 - 특이하게 테스트 케이스의 갯수를 먼저 알려주지 않고 문장 끝 .을 하나의 문자열로 인식해야 하는 문제입니다. - while(True)로 문자열을 한 줄 씩 받으면서 종료조건인 '.'에 해당..

BOJ 백준 18258번 문제 <큐2> python, 문제 해석 및 풀이

오늘 푼 문제는 실버4 난이도, 백준 18258번 문제 "큐2"다. 블로그 쓰기를 1주일 동안 꾸준히 한다면 아마 네이버 블로그에 책 읽은 것들을 하나씩 올릴 것 같다. (추억이니까 하고 싶은데 할 수 있을지는 모르겠다 ㅠㅠ) 내일 스키장을 가야 함에도 블로그 글을 쓰고 있는 인생이란... 반말과 존댓말이 섞여있는 이유가 궁금하다면 첫 번째 포스팅을 읽고 오길 바란다. https://flydeepnight.tistory.com/14 BOJ 백준 9012번 문제 python, 알고리즘 문제 푸는 방법 오늘부터 메타버스 아카데미 1기를 함께했던 (내가 가장 애정하는 AI반!) 사람들과 알고리즘 문제풀기 스터디를 하기로 하여서 내가 푸는 것마다 블로그에 포스팅을 할 예정이다. 블로그를 쓸 때 flydeepni..

BOJ 백준 9012번 문제 <괄호> python, 알고리즘 문제 푸는 방법

오늘부터 메타버스 아카데미 1기를 함께했던 (내가 가장 애정하는 AI반!) 사람들과 알고리즘 문제풀기 스터디를 하기로 하여서 내가 푸는 것마다 블로그에 포스팅을 할 예정이다. 블로그를 쓸 때마다 느끼는 거지만 머리말에도 존댓말을 하자니 쓰는 내가 재미가 없고(돈 벌려고 하는 느낌이랄까), 그렇다고 설명하는 부분 마저 전부 반말로 하자니 뭔가 공적인 느낌이 안 들고 끄적인 일기마냥 신뢰성이 떨어지는 것 같은 기분이다. (디시인사이드, 에타 같은 가볍게 떠드는 반말 커뮤니티 같달까) 그래서 선택한 방안으로 머리글, 마치는 글은 내가 하고 싶은 말을 하는 것이니 반말로 작성하고, 본문 내용은 깍듯한 '습니다' 체를 사용하기로 하였으니 이상하게 생각하지 말아주길 바란다. 오늘 푼 것은 실버4 난이도의 백준 90..

[AI, 딥러닝] 활성화 함수(Activation Function) 정리

활성화 함수 정리(Activation Function) 계단함수 퍼셉트론에서 출력값이 0이 될지, 1이 될지를 결정해주었던 함수 계단함수는 활성화 함수들 중 한 종류 활성화 함수의 특징 비선형 선형 함수는 출력이 입력의 상수배만큼 변하는 함수. 시각화하면 직선이 됨 비선형 함수는 직선으로 그릴 수 없는 함수. 활성화 함수에서 비선형 함수를 쓰는 이유는 선형 함수의 경우 아무리 층을 많이 쌓아도 결국 곱해진 각층에서 곱해진 가중치들을 모두 묶어 하나의 가중치라 생각해버리면 1회짜리가 되어버리기 때문 선형 함수 층의 사용 비선형 층들과 함께 인공 신경망의 일부로 추가하면 학습 가능한 가중치가 새로 생기는 의미를 가짐 주로 선형층, 투사층 등으로 부름 활성화 함수의 종류 (1) 계단함수(Step Functio..

[AI, 딥러닝] 딥러닝을 위한 퍼셉트론 정리(단층 퍼셉트론, 다층 퍼셉트론MLP)

이번 포스팅에선 딥러닝을 공부할 때 필요한 지식인 퍼셉트론, 그리고 이를 통해 만들어진 단층 퍼셉트론과 다층 퍼셉트론에 대해 알아보겠습니다. 딥러닝 손실함수와 옵티마이저를 이용하여 기계가 가중치를 찾아내도록 자동화시키는데 학습을 시키는 인공 신경망이 심층 신경망인 것을 말합니다 손실함수와 옵티마이저는 따로 알아보도록 하고 여기서는 뒤의 내용이 무슨 뜻인지 알아보겠습니다. 퍼셉트론 Frank Rosenblatt가 1957년 제안한 초기 형태의 인공 신경망 다수의 입력으로부터 하나의 결과를 내보내는 알고리즘으로 퍼셉트론은 w0, x0 바이어스와 w1, w2의 가중치를 계속 변경하는 심층 신경망의 기본이 된다. 퍼셉트론은 뇌에서 뉴런과 비슷한 역할이다. 인공 신경망의 작동원리 각 입력값(x)가 가중치(w)와 ..