🌐 웹페이지 인코딩 방식 추출하기 이 글은 를 읽고 이해한 바를 바탕으로 정리하여 작성되었습니다. 표준 라이브러리인 urllib.request 모듈을 사용하여 urlopen함수에 url을 넣어 웹페이지를 추출할 때, 반환되는 객체인 HTTPREsponse에서 read()메서드(HTTPResponse.read())로 추출된 응답 본문의 값은 byte 자료형이다. 따라서 문자열 자료형으로 다루려면 문자 코드를 지정해서 decoding해야 한다! 당연히, 인코딩된 방식으로 다시 디코딩을 해줘야하는데, 이때 웹페이지 문서가 인코딩된 방식을 알기 위해 추출하는 방법을 2가지로 정리해보겠다. 첫번째, HTTP 헤더에서 인코딩 방식을 추출하는 방법이다. HTTP 응답의 Content-Type 헤더에서 인코딩 방식을 추출한다. 일반적으로, 한국어가 포..
썸네일 📊 KDD, SEMMA, CRISP-DM 도대체 뭐가 달라? 빅데이터 분석 대표 방법론 3가지 파헤치기! 빅데이터 분석의 방법론에는 대표적으로 3가지가 있다. KDD, SEMMA, CRISP-DM 오늘은 이 3가지에 대해서 공부했다. 조금 추상적..?ㅇ?ㅇ 이라는 생각이 들어서 공부할 때 도대체 뭐가 어떻게 다르다는 거지.... 말만 조금씩 바꿔놓은 것 같은데,,, 라고 생각이 들었는데, 그럼에도 확실히 방법론마다 특징과 어떤 경우에 많이 쓰이는지에 대한 핵심 포인트들이 있으므로 그 내용을 중심으로 기술해보겠다! 1. KDD : (Knowledge Discovery in Database) 지식 탐색 중심 : 데이터를 중심으로 insight 발글을 위한 절차와 단계를 정의한 데이터 마이닝 기법 프로파일링 기술 기반 통계적 패턴, 지식 발견 인사이트 발굴(현황분석을 통한 요건 정의) '데이터 마이닝'이라는 용어..
썸네일 42서울 온라인 테스트 후기 + 2021 4회차 체크인미팅 신청 성공 후기✌️ 작년부터 42서울이라는 프로그램을 알고나서 졸업 전에 꼭 참가해보고 싶다고 생각했었는데, 휴학도 했겠다 지금이 딱이다! 싶어서 3월에 온라인 테스트를 보았다. 온라인 테스트는 크게 두가지 테스트로 구성되어있다. 1. 기억력 테스트 2. 논리력 테스트 개발 실력이나 알고리즘 구현 능력을 보는 시험은 전혀 아니고 내가 생각하기에는 정말 "컴퓨팅적 사고력.(?.)"을 보는 듯 싶었다. 사실 제일 어려운 것... 온라인 테스트에 대한 후기는 정말 정말 많으니 스킵하고..(핑계고 사진이 없음..) 바로 체크인 미팅 후기로! 급한 마음에 사진이 발로 찍은 것 같은건... 이해해 주세욤.. 온라인 테스트를 합격하면 이렇게 체크인 미팅 탭이 열린다. 체크인 미팅 시간이 되어야만 탭에서 등록할 수 있는 슬롯이 열린다. ..
썸네일 BAEKJOON #1966) 프린터 큐 문제 유형: 큐, 구현, 그리디 이 문제 풀이의 핵심 아이디어는 다음과 같다. 1. 현재 리스트에서 가장 큰 수가 앞에 올 때까지 회전시킨 뒤에 꺼낸다. 2. 이때, 꺼낸다는 것은 프린트를 했다는 뜻이므로, 프린트한 횟수의 카운트를 늘린다. 3. 가장 큰 수가 내가 알고 싶은 문서에 해당하면서 가장 앞에 있을 때 프린트 횟수를 출력하며 프로그램을 종료한다. #제출코드 test_case = int(input()) for _ in range(test_case): n, m = list(map(int, input().split())) queue = list(map(int, input().split())) queue = [(i, idx) for idx, i in enumerate(queue)] count = 0 ..
썸네일 BAEKJOON #1874) 스택수열 문제 유형: 스택, 그리디 이 문제는 문제에서 요구하는대로 구현만 해도 풀 수 있다...는데,,, 나는 1시간 잡아도 못 풀어서 결국 나동빈 강사님의 해설 강의를 보고 풀었다..,,ㅎㅠㅠㅠㅠㅠ 어려워어려워어려워 그대로 구현하라는데 그게 어려워,,,ㅠㅠㅠㅠ 공부 진짜 많이 해야할듯쿄쿄 문제 풀이 핵심 아이디어는 다음과 같다. 1. 스택에 원소를 삽입할 때는 단순히 특정 수에 도달할 때까지 삽입(push)한다. 2. 스택에서 원소를 연달아 빼낼 때, 내림차순을 유지할 수 있는 확인한다. #코드 n = int(input()) count = 1 stack = [] result =[] for i in range(1, n+1): data = int(input()) while count
썸네일 BAEKJOON #2798) 블랙잭 문제 유형: 배열, 완전 탐색 1. 카드 3개의 조합으로 나올 수 있는 합의 값들을 모두 구한다. (완전 탐색) 2. 구한 합의 값들을 정렬한다. 3. M을 넘지 않는 최대값을 구한다. n, m = map(int, input().split()) cards = list(map(int, input().split())) sum_list = [] answer = 0 for i in range(n-2): for j in range(i+1, n-1): for k in range(j+1, n): sum_list.append(cards[i] + cards[j] + cards[k]) sum_list.sort() for i in sum_list: if i > m: break answer = i print(answer)
썸네일 [Flutter] Test Drive (앱 구동 시켜보기) 이 글의 모든 내용은 flutter에서 기본적으로 제공하고 있는 description을 재해석하여 작성하였다. https://flutter.dev/docs/get-started/test-drive?tab=vscode Test drive How to create a templated Flutter app and use hot reload. flutter.dev ✔️ #1 Project 생성 View -> Command Palatte에 Flutter: New Application Project를 클릭하여 Project생성한다. Project가 생성되고 main.dart파일이 생성될때까지 기다린다. ✔️ #2 Demo App Drive Test main.dart파일이 만들어지면 Demo App의 코드를 복사하..
썸네일 [Flutter] 시작하기 + 설치 + Editor 설정 방법 삼성 SDS Smart Hackathon에 대학생 봉사단으로 참여하며 내가 맡게된 고등학생 팀이 Dart언어와 Flutter프레임워크를 이용하여 앱개발을 하기로 한다고 하여, 이번 기회에 나도 같이 배우며 진행하기로 하였다..! 너무너무 열심히 하려고 하는 친구들 같아서 확실한 도움을 줄 수 있도록 열심히 공부할거다..!(๑•̀ㅂ•́)و✧ 💡 Flutter Framework 우선, flutter 프레임워크에 대하여 설명하면, 요즘 아주 아주 핫한 아이라고 할 수 있다. 구글에서 개발한 오픈 소스 모바일 애플리케이션 개발 프레임워크이다. 💡 Flutter의 장점 flutter의 최대 장점은 크로스플랫폼으로 개발이 가능하다는 점이다. android, ios 등 플랫폼의 제한 없이 함께 개발이 가능하다는 점이..
썸네일 Data Structure (5) Graph (그래프) 📌그래프란 : 실제 세계의 현상이나 사물을 정점(Vertex)(또는 노드(Node))와 간선(Edge)로 표현하기 위해 사용 📌용어 노드 Node: =정점(Vertex),그래프에서의 위치, 간선 Edge: 노드들을 연결한 선. 위치 간의 관계를 표시 (link, branch라고 표현하기도 함.) 인접 정점 Adjacent Vertex: 간선으로 직접 연결되어 있는 정점(노드) +기타 정점의 차수 Degree: 무방향 그래프에서 하나의 정점에 인접한 정점의 수 진입 차수 In-Degree: 방향그래프에서 외부에서 오는 간선의 수 진출 차수 Out-Degree: 방향그래프에서 외부로 향하는 간선의 수 경로 길이 Path Length: 경로를 구성하기 위해 사용된 간선의 수 단순 경로 Simple Path: ..
썸네일 Data Structure - Heap (힙) | Python 구현 Heap은 이진트리의 변형된 자료구조라고 할 수 있는데, 최댓값 최솟값을 빠르게 찾아야 할 때 많이 사용된다. 📌Heap : 데이터에서 최대값과 최소값을 빠르게 찾기 위해 고안된 완전 이진 트리 (Complete Binary Tree) 트리를 기반으로 변형된 구조! 완전 이진 트리(Complete Binary Tree): 노드를 삽입할 때 최하단 왼쪽 노드부터 차례대로 삽입하는 트리 힙을 사용하는 이유 우선순위 큐와 같이 최댓값 또는 최솟값을 빠르게 찾아야 하는 자료구조 및 알고리즘 구현 등에 활용됨. array vs. heap : 배열에서 최댓값/최솟값을 탐색하는데 걸리는 시간복잡도는 $O(n)$, 힙에서 최댓값/최솟값을 찾는데 걸리는 시간복잡도는 $O(log n)$ 📌Heap 구조 최대값을 구하기 위..
썸네일 Data Structure (3) Hash Table (해시 테이블) 📌Hash 구조 Hash Table: key에 data(value)를 저장하는 데이터 구조 ex) Python의 Dictionary : key와 value를 가지고 있는 데이터 타입으로, key값을 통해 value를 바로 꺼낼 수 있음 (Python에서는 hash구현 없이 바로 dictionary 사용하면 됨) 보통 미리 hash table의 크기만큼 배열 생성 후 사용 (공간과 탐색 시간을 맞바꾸는 기법) 📌용어 hash: random 값을 고정 길이로 변환하는 것 (단방향 암호화 기법으로, 해시 알고리즘을 이용하여 고정된 길이의 암호화된 문자열로 변환) hash table: hashing function: key에 대해 산술 연산을 이용해 데이터 위치를 찾을 수 있는 함수, 즉 임이이 길이의 데이터를..
썸네일 Data Structure (2) Tree (트리) 📌트리 node와 branch를 이용해서, cycle을 이루지 않도록 구성한 데이터 구조 트리 중 binary tree(이진 트리) 형태의 구조는 탐색(search) 알고리즘 구현에 많이 사용됨 In computer science, a tree is a widely used abstract data type that simulates a hierarchical tree structure, with a root value and subtrees of children with a parent node, represented as a set of linked nodes. A tree data structure can be defined recursively as a collection of nodes (sta..