분류 전체보기

· 인공지능
인공지능이란? 인공지능(Artificial Intelligence)은 사람의 지능을 만들기 위한 시스템이나 프로그램을 말한다. 머신러닝, 딥러닝, 인공지능의 개념을 혼동하는 사람이 많이 있다. 쉽게 말해 머신러닝과 딥러닝은 인공지능에 포함되는 기술이고, 딥러닝은 머신러닝에 포함되는 기술이다. 다음 그림을 보면 쉽게 이해가 가능하다. 머신러닝이란? 머신러닝은 기계학습을 의미하며, 데이터의 규칙을 컴퓨터 스스로 찾아내는 것을 말한다. 기존 프로그래밍은 규칙을 사람이 직접 만들어 결과를 얻어내지만 머신러닝은 스스로 규칙을 찾아낸다. 머신러닝은 지도 학습(supervised learning), 비지도 학습(unsupervised learning)으로 나뉘다. 지도 학습은 많은 입력과 출력이 주어지면 규칙을 찾아..
좋은 기회로 시작했던 KOSTA 서포터스의 과정이 종료되고 수료하였습니다~!! 코로나 때문에 오프라인 활동을 많이 못한 것은 아쉽지만 그래도 온라인으로 활동하여 수료하였고 협회 측에서도 많은 홍보자료와 지원을 해주신 것에 너무 감사드립니다. ㅎㅎ 짜란~~ 한국소프트웨어기술진흥협회와 저의 무궁한 발전을 기원하며...ㅎㅎ
· Python
파이썬 문자열 문자에 접근은 인덱스로 할 수 있다. 0부터 시작하며, 음수 인덱스도 가능하다. 문자열 결합 문자열 결합은 + 연산자를 이용하면 된다. h = 'hello' w = 'world' print(h+w) 문자열 분리 문자열 분리는 [ ] 연산자를 이용해 인덱스를 통해 분리시킬 수 있다. [시작 인덱스 : 끝 인덱스 : 스텝] 시작 인덱스: 범위의 시작 끝 인덱스: 범위의 끝 스텝: 간격 (생략 시 default는 1) h = 'hello, world' print(h[0:5]) print(h[-3:]) print(h[0:10:2]) in 연산자 문자열에 원하는 내용이 있는지 확인 not in 연산자 문자열에 원하는 내용이 없는지 확인 len( ) 문자열 길이를 return 포맷팅 미리 정해진 문자..
· Python
모든 언어에서는 데이터를 다루는 기본기가 잘 잡혀있어야 나중에 고급 개념도 이해하기 쉽다. 그렇다면 파이썬에서는 데이터를 어떻게 다룰까?? 숫자 a = 2020 + 100 print(a) a = 22/7 print(a) a = 2 + 3j print(a) 파이썬에서는 데이터의 타입을 미리 선언하지 않는다. 따라서 정수, 실수, 복소수 모두 구분하지 않고 하나의 변수에 담을 수 있다. 다음은 출력 결과이다. 연산자는 다른 언어와 같이 사용하면 된다. 다음은 사칙 연산자들을 표로 정리한 것이다. 문자 파이썬의 문자는 작은따옴표, 큰 따옴표로 감싸서 표현한다. (문자열도 동일) 문자열이 여러 줄에 걸쳐 있는 경우에는 따옴표 3개의 쌍으로 감싼다. escape문자는 \이다. e = 'a' f = 'abc' g ..
· Python
요새 파이썬이 뜨고 있다는 소리를 어렴풋이 들은 기억이 있다. 라이브러리들이 잘 구현되어 있고 여러 분야에서 사용한다는 장점이 있다고 생각하고 있었다. 그렇다면 파이썬의 특징에는 무엇이 있을까?? 파이썬의 특징 파이썬은 인터프리터 (interpreter) 방식 언어이다. 다른 C, C++ 같은 컴파일 언어와는 달리 기계어로 변환하지 않고 스크립트를 해석하여 실행하는 구조이다. 또한, 플랫폼에 영향을 받지 않고 독립적이기 때문에 어느 OS에서도 사용할 수 있다는 장점이 있다. 파이썬 기본구조 파이썬에는 절대적으로 지켜야하는 규칙이 있다. 명령어 입력의 시작은 첫 칸부터해야 한다. 대화식 모드와 스크립트 파일로 파이썬은 구분이 되는데 두 가지 모두 명령어는 첫 칸부터 입력해야 한다. 그렇지 않고 공백으로 시..
그래프 탐색의 기본인 깊이 우선 탐색(DFS)과 너비 우선 탐색(BFS)을 구현하는 문제를 풀어보았다. 예전에 공부해서 잘 할 수 있으려나 하고 생각했는데 생각보다 잘 풀렸다. 역시 기본 개념을 이해하고 있다면 구현하기 쉬운 거 같다. DFS에서는 재귀를 이용한다는 점을 알고 구현하니 훨씬 순조로웠다. 또한 BFS에서 Queue를 사용한다는 키포인트를 알고있었기 때문에 쉽게 문제를 풀 수 있었다. DFS에서는 방문하지 않은 노드일 경우 출력을 하고, 해당 노드에서 갈 수 있는 노드를 하나씩 dfs()를 이용하여 재귀시키면 간단하게 풀린다. 그렇게 재귀 호출되어 탐색을 시작한 노드에서도 똑같은 작업을 수행하기 때문에 최대한 탐색할 수 있는 노드까지 최대한 순회한 뒤 반환되어 나머지 노드를 순회한다. BFS..
지난 포스트에 풀었던 다익스트라 알고리즘을 다른 문제로 다시 풀어 보았다. 저번의 실수를 만회하기위해 어제 틀린 부분을 집중해서 풀어보았다. 1트만에 맞았다 ㅎㅎㅎㅎ 0.5초라 시간 초과가 뜨지 않을까 했는데 다행히 뜨지 않았다. 지난 포스트에서는 모든 노드까지의 최단거리를 구하는 것인데 이번 문제는 그냥 도착 노드까지의 최소 비용만 구하면 된다. 즉, 도착 노드의 최소 비용만 출력하면 된다. 다음은 Java로 작성한 코드이다. import java.util.ArrayList; import java.util.PriorityQueue; import java.util.Scanner; public class MinimumCost { public static void main(String[] args) { //..
다익스트라 알고리즘을 복습하기 위해 문제 카테고리에서 제일 첫 번째에 위치한 문제를 풀러 들어갔다. 처음에는 다익스트라만 적용하면 간단하게 풀릴 문제라고 생각했다. 하지만...... 오만했던 나를 발견했다..... 거의 하루를 쏟아 부었다..... 몇 틀을 한 건지 모르겠다..... 15트만에 드디어 풀었다. 중간에 맞은 문제는 구글에 돌아다니는 코드를 붙여 넣어 봤다. 내 코드만 안 되는 줄 알고.... 점심 나가버릴 거 같았다.... 문제풀이는 간단했다. 노드의 수와 간선의 수, 시작 노드를 입력받고 간선들의 시작점, 도착점, 가중치를 입력받아 시작 노드에서 다른 노드들까지의 최단거리를 구하면 되는 문제이다. 나는 다익스트라 알고리즘을 이용하여 최단 경로를 구하려 했다. 다익스트라 알고리즘은 아직 방..
KOSTA를 마무리하며... 좋은 기회로 kosta 서포터스에 선발되어 좋은 교육을 듣고, 블로그 포스팅으로 홍보활동을 했었습니다. 하지만, 코로나 바이러스 때문에 많은 활동을 하지 못해 아쉬운 마음이 큽니다. 이런 아쉬운 마음을 마지막으로 kosta에 대한 정보를 드리며 마무리해보겠습니다. 하루빨리 코로나 바이러스가 종식되기를 바랍니다...😥 kosta 메인 화면입니다. 재직자, 취업자 모두를 대상으로 교육을 진행 중입니다. 하지만, 무조건 들을 수 있는 것은 아니고 대학교의 강의와 같이 강의가 개설되면 수강 신청을 받게 되고 교육을 진행합니다. 그렇다면, 이번 달에 개설된 강의는 무엇이 있을까요?? 스크롤을 조금 내려보면, 이달의 과정을 확인할 수 있습니다. 이달의 과정을 클릭하시면 이달에 열리는 강..
DP 제일 위에 있는 문제를 풀어보았다. 3kg과 5kg의 설탕으로 목표 무게를 만드는 것이다. 만들지 못하면 -1을 만들 수 있으면, 최소한의 수의 설탕으로 목표 무게를 만드는 것이다. 메모제이션을 이용하여 0부터 목표 무게까지 최소한의 수를 쌓아가면 된다. 0 = -1 1 = -1 2 = -1 3 = 1 4 = -1 5 = 1 은 기저 조건으로 설정한다. 만약 기저 조건보다 낮은 목표 무게가 있다면 예외 처리를 한다. 그리고, 이제 무게를 6부터 쌓아갈 때 3을 뺀 수와 5를 뺀 무게 중, 적은 수의 설탕 봉지를 쓴 경우를 택해 1을 더하면 된다. 또한, 15같은 무게는 3kg으로도 5kg으로도 만들 수 있다. 이런 경우를 생각해 3kg을 쓴 경우와 5kg을 쓴 경우 모두를 생각해 비교해야 한다. 다..
hvv_an
'분류 전체보기' 카테고리의 글 목록 (53 Page)