전체 글

전체 글

    [Python] __future__ (import __future__)

    프로그래밍 공부를 하다보니 종종 다른 사람들의 코드에서 아래와 같은 구문을 보게 된다 from __future__ import absolute_import, division, print_function, unicode_literals __future__라는 임포트 형식인데, 도대체 이걸 왜 쓰는 것일까?? 프로그래밍 언어들은 사용자들의 피드백에 따라서 그 언어 고유의 내장 기능을 추가하고 수정한다. 파이썬도 그렇게 기능들이 진화하며 버전업을 해간다. 파이썬의 공식 홈페이지 (https://www.python.org/downloads/)에서 여러 버전을 확인 할 수 있다. 파이썬3버전을 쓴다면 문제가 없겠지만 2세대와 3세대는 차이가 꽤 크며, 3버전의 많은 기능들을 2버전에서는 호환하여 사용할 수가 없다..

    [ML] 분류 모델 성능 평가 지표 - Confusion Matrix (accuracy, precision, recall, f1 score, ROC-AUC curve)

    Classification & Clustering 의 성능 평가 지표 Linear모델에 대해서는 MSE, R-square 등으로 모델의 성능을 평가할 수 있다. 그렇다면 분류 모델 또는 클러스터링에서의 성능 평가 방법은 어떠할까? 사실 분류 모델과 클러스터링은 평가 방법이 다르다. 이 둘의 차이는 라벨(정답)의 유무인데, 클러스터링은 라벨이 없는 상태에서 클러스터의 응집도 등으로 평가를 진행한다. 하지만 이또한 정확도가 높지 않기 때문에 전문 지식을 가지고 있는 도메인 전문가의 휴리스틱한 평가 방식을 취한다. Classification의 성능 평가 지표 - Confusion Matrix 이진 분류(양성, 음성)을 다루는 task라고 했을 때 모델의 정확도가 100%이면 아래와 같이 양성으로 예측된 영역을..

    [백준][python]1157. 단어공부

    문제 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. 입력 첫째 줄에 알파벳 대소문자로 이루어진 단어가 주어진다. 주어지는 단어의 길이는 1,000,000을 넘지 않는다. 출력 첫째 줄에 이 단어에서 가장 많이 사용된 알파벳을 대문자로 출력한다. 단, 가장 많이 사용된 알파벳이 여러 개 존재하는 경우에는 ?를 출력한다. 예제 입력 1 복사 Mississipi 예제 출력 1 복사 ? 예제 입력 2 복사 zZa 예제 출력 2 복사 Z My answer ans = [0]*26 s=input() for idx,i in enumerate(s): n=ord(i) if n 1: print('?') else..

    [백준][python] 2675. 문자열 반복

    문제 문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다. S에는 QR Code "alphanumeric" 문자만 들어있다. QR Code "alphanumeric" 문자는 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ\$%*+-./: 이다. 입력 첫째 줄에 테스트 케이스의 개수 T(1 ≤ T ≤ 1,000)가 주어진다. 각 테스트 케이스는 반복 횟수 R(1 ≤ R ≤ 8), 문자열 S가 공백으로 구분되어 주어진다. S의 길이는 적어도 1이며, 20글자를 넘지 않는다. 출력 각 테스트 케이스에 대해 P를 출력한다. 예제 입력 1 복사 2..

    [백준][python]10809. 알파벳 찾기

    문제 알파벳 소문자로만 이루어진 단어 S가 주어진다. 각각의 알파벳에 대해서, 단어에 포함되어 있는 경우에는 처음 등장하는 위치를, 포함되어 있지 않은 경우에는 -1을 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 단어 S가 주어진다. 단어의 길이는 100을 넘지 않으며, 알파벳 소문자로만 이루어져 있다. 출력 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출력한다. 단어의 첫 번째 글자는 0번째 위치이고, 두 번째 글자는 1번째 위치이다. 예제 입력 1 복사 baekjoon 예제 출력 1 복사 1 0 -1 -1 2 -1 -1 -1 -1 4 3 -1 -..

    [프로그래머스][python]두 개 뽑아서 더하기

    Question: 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 제한사항 numbers의 길이는 2 이상 100 이하입니다. numbers의 모든 수는 0 이상 100 이하입니다. Example: My answer: def solution(numbers): answer = [] for i in range(len(numbers)): for j in range(i+1,len(numbers)): answer.append(numbers[i]+numbers[j]) answer = list(set(answer)) answer.sort() retur..

    [python] Class이해하기

    class class는 프로그래머가 지정한 이름으로 만든 하나의 독립된 공간이고, namespace라고 부른다. 클래스에 대한 또다른 설명은 다음과 같다. 함수뿐만 아니라 다양한 변수를 포함한 큰 프로그램을 하나의 묶음으로 정의하는 것이 "클래스(class)"이다. class 왜 쓰는 걸까? 같은 데이터를 가지고 계속해서 연산의 결과를 저장하며 여러가지 함수를 묶어 처리해야 하는 경우가 있다. 예를들어 계산기를 구현한다고 할 때 계속해서 global변수로 연산결과를 받아서 다음 연산을 함수로 넘겨 진행해도 되지만, 이렇게 한다면 다른 계산기로 다른 연산을 하고 싶을 때는 같은 함수를 여러개 작성해야 하는 일이 생긴다. 그래서 우리는 class를 사용하고, 그 데이터 처리에 필요한 변수와 함수를 모두 하나..