분류 전체보기 462

[알고리즘] 백준 10815 파이썬 - 숫자 카드

10815번: 숫자 카드 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net 문제 숫자 카드는 정수 하나가 적혀져 있는 카드이다. 상근이는 숫자 카드 N개를 가지고 있다. 정수 M개가 주어졌을 때, 이 수가 적혀있는 숫자 카드를 상근이가 가지고 있는지 아닌지를 구하는 프로그램을 작성하시오. 문제풀이 import sys input = sys.stdin.readline N=int(input()) List=list(map(int,input().split())) #이분 탐색을 위해 정렬 List.sort() M=in..

[IT지식] 자료구조와 알고리즘 공부를 해야하는 이유?

1. 자료구조와 알고리즘? - 자료 구조는 데이터의 효율적인 접근과 수정을 위해 데이터를 표현하는 방식으로, 알고리즘의 유용한 재료가 된다. 알고리즘은 어떠한 일을 처리하기 위해 정해진 절차나 방식을 표현한 것이다. 2. 자료구조의 종류 - 자료 구조는 '선형'과 '비선형'으로 구분된다. 선형 자료 구조에는 '리스트', '스택', '큐' 등이 있고, 비선형 자료 구조에는 '트리'와 '그래프' 등이 있다. 자료 구조를 제대로 이해해 적재적소에 적용하면 데이터를 효율적으로 송수신할 수 있고, 편리하게 관리할 수 있다. 많은 알고리즘 중에 자주 공부하는 알고리즘은 '정렬', '탐색'이다. 이 알고리즘은 데이터를 순서에 맞게 정렬하거나 찾는 것이다. 정렬 알고리즘에는 '버블 정렬', '병합 정렬', '퀵 정렬'..

IT지식/나머지 2022.10.24

[IT지식] 빅데이터 직종에서 가장 많이 사용되는 언어는?

1. 각 직종별 프로그래밍 중요도 - 데이터 사이언티스트와 데이터 리서처에게는 코딩 기술 없이는 일의 진행이 불가능할 정도이다. 연구 결과, 모델 이해, 모델 시험 및 발표 등 모두 코드를 쓸 줄 모르면 실험을 시작할 수도 없다. - 상황에 따라 데이터 기획자에게 POC(신기술 도입 전 성공 가능성 실험해보는 것)를 요구할 수도 있다. 이에 프로그래밍 기술을 보유하면 기획 단계에서 더욱 선명한 방향을 제시하고 프로젝트를 성공으로 이끌 수 있다. - 데이터 엔지니어는 프로그래밍을 다른 직종에 비해 제일 잘해야 한다. 데이터 엔지니어의 코드와 소프트웨어가 서비스를 지탱하기 때문이다. 데이터의 효율적인 이동과 저장을 위해 자료구조와 알고리즘에도 익숙해야 한다. 2. 데이터 전문가와 프로그래밍 언어 위 지표와 ..

딥러닝과 텐서플로우 기초 (텐서플로우로 선형 회귀 문제 풀기)

1. 딥러닝이란? - 기존 머신러닝에서는 사람이 기계가 학습할 데이터 특징을 설계했지만, 딥러닝에서는 데이터 입력에서부터 결과 출력까지 사람의 개입을 배제할 수 있다. 과적합을 더욱 효과적으로 방지할 수 있는 드롭아웃 개념이 나오고, 컴퓨팅 파워 증가로 빅데이터에 대한 처리가 가능해지면서 딥러닝뿐 아니라 머신러닝 기술 전반이 폭발적으로 발전했다. (머신러닝, 활성화 함수 내용은 아래 링크를 참조) 인공지능 머신러닝과 알고리즘 (Feat. 퍼셉트론 알고리즘, 활성화 함수) 1. 머신러닝이란? - 컴퓨터 시스템이 사용하는 알고리즘과 통계적 모델에 대한 과학적인 연구다. 컴퓨터는 명시적인 지시 사항들을 이용하는 대신에 모델과 추론에 의존하여 효과적으로 작업을 maeseok.tistory.com 2. 딥러닝에서..

[알고리즘] 백준 11655 파이썬 - ROT13

11655번: ROT13 첫째 줄에 알파벳 대문자, 소문자, 공백, 숫자로만 이루어진 문자열 S가 주어진다. S의 길이는 100을 넘지 않는다. www.acmicpc.net 문제 ROT13은 카이사르 암호의 일종으로 영어 알파벳을 13글자씩 밀어서 만든다. 예를 들어, "Baekjoon Online Judge"를 ROT13으로 암호화하면 "Onrxwbba Bayvar Whqtr"가 된다. ROT13으로 암호화한 내용을 원래 내용으로 바꾸려면 암호화한 문자열을 다시 ROT13하면 된다. 앞에서 암호화한 문자열 "Onrxwbba Bayvar Whqtr"에 다시 ROT13을 적용하면 "Baekjoon Online Judge"가 된다. ROT13은 알파벳 대문자와 소문자에만 적용할 수 있다. 알파벳이 아닌 글자..

[빅데이터] 웹 크롤링과 웹 크롤러

1. 웹 크롤링 기법 1. HTTP와 HTML을 활용하는 방법 HTTP 통신을 이용해 원하는 웹 페이지의 HTML 소스 코드를 다운로드한 후 이를 적절히 파싱하여 필요한 데이터를 추출하는 것이다. 2. 원하는 데이터가 있는 웹 페이지의 URL 주소를 알기 어려울 때 웹 브라우저를 이용해 사람이 직접 데이터를 받는 모습을 따라하는 프로그램을 만들어 원하는 데이터를 다운로드하는 것이다. 3. 데이터를 다운로드할 수 있도록 만들어진 API를 활용한다. 2. 웹 크롤러 웹 크롤링이나 웹 스크래핑을 수행하는 프로그램을 말한다. 프로그래밍 언어로 크롤러를 구현하는 경우 파이썬을 예시로 들면, 'requests'와 'BeautifulSoup' 패키지를 사용하여, HTML의 소스 코드를 다운로드한 후 파싱해 웹 페이지..

[빅데이터] 데이터 분석 소프트웨어의 장점과 단점

1. 데이터 분석 소프트웨어란? - 데이터 수집, 처리, 분석, 시각화, 결과 배포까지 데이터 분석의 모든 과정을 코딩 없이 수행할 수 있게 해주는 소프트웨어를 말한다. 즉 노드라는 점을 이용해 키보드로 하는 코딩을 마우스 클릭이나 드래그 앤 드롭으로 대신한다. 2. 데이터 분석 소프트웨어의 장 단점 - 장점 : 분석 목표나 방식이 어느 정도 정해져 있고, 분석 난이도가 높지 않을 때, 반복적으로 수행될 때, 짧은 시간 내에 결과를 도출하고 공유할 때 효율적으로 수행할 수 있다. - 단점 : 자유성이 떨어지고, 고난도의 데이터 분석을 수행하는 데 한계가 있다. 3. 데이터 분석 소프트웨어 종류 - KNIME, RapidMiner, Orange, SAS 등이 있다. 각각의 사용 편의성, 데이터 분석을 위한..

인공지능 머신러닝과 알고리즘 (Feat. 퍼셉트론 알고리즘, 활성화 함수)

1. 머신러닝이란? - 컴퓨터 시스템이 사용하는 알고리즘과 통계적 모델에 대한 과학적인 연구다. 컴퓨터는 명시적인 지시 사항들을 이용하는 대신에 모델과 추론에 의존하여 효과적으로 작업을 수행한다. 머신러닝은 인공지능의 하위 집합으로 간주된다. 즉 컴퓨터 프로그램이 수행하는 작업 T가 경험 E를 통해서 성능 P만큼 향상된 것으로 측정될 때, 우리는 컴퓨터 프로그램이 학습한다고 말한다. 2. 퍼셉트론 알고리즘 - 신경망 알고리즘의 기초이다. 퍼셉트론은 신경 세포를 인공적으로 모델링한 것으로, 신경 세포처럼 다른 신경 세포로부터 정보를 받아서 새로운 정보를 생성한 후, 또 다른 신경 세포로 전달한다. x1과 x2는 입력 신호, y는 출력 신호, w1, w2는 가중치를 나타낸다. 가중치는 결합 하중이라고도 하며..

[알고리즘] 백준 10820 파이썬 - 문자열 분석

10820번: 문자열 분석 문자열 N개가 주어진다. 이때, 문자열에 포함되어 있는 소문자, 대문자, 숫자, 공백의 개수를 구하는 프로그램을 작성하시오. 각 문자열은 알파벳 소문자, 대문자, 숫자, 공백으로만 이루어져 있 www.acmicpc.net 문제 문자열 N개가 주어진다. 이때, 문자열에 포함되어 있는 소문자, 대문자, 숫자, 공백의 개수를 구하는 프로그램을 작성하시오. 각 문자열은 알파벳 소문자, 대문자, 숫자, 공백으로만 이루어져 있다. 문제풀이 while True: try: a=0 b=0 c=0 d=0 X=input() for i in X: if(i.islower()): a+=1 elif(i.isupper()): b+=1 elif(i.isdigit()): c+=1 elif(i.isspace()..

[알고리즘] 백준 9093 파이썬 - 단어 뒤집기

9093번: 단어 뒤집기 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문장이 하나 주어진다. 단어의 길이는 최대 20, 문장의 길이는 최대 1000이다. 단어와 단어 사이에는 www.acmicpc.net 문제 문장이 주어졌을 때, 단어를 모두 뒤집어서 출력하는 프로그램을 작성하시오. 단, 단어의 순서는 바꿀 수 없다. 단어는 영어 알파벳으로만 이루어져 있다. 문제풀이 #1번 답안 import sys N = int(sys.stdin.readline()) for i in range(N): List = list(map(str,sys.stdin.readline().split())) List2=[] for j in List: a="" for k in j: a= k..