Python 59

[Python] Python에서 빠른 입출력 방법

프로그래밍 대회나 알고리즘 문제를 풀 때, 입출력 속도는 매우 중요합니다. 특히 파이썬은 다른 언어에 비해 입출력 속도가 느린 편이기 때문에, 기본 입출력 방법을 사용하면 시간 초과가 발생할 수 있습니다. 이 글에서는 파이썬에서 데이터를 빠르게 입출력하는 방법을 소개하겠습니다. 빠른 입력기본적으로 파이썬에서는 input() 함수를 사용하여 입력을 받습니다. 하지만 이 함수는 내부적으로 버퍼링을 하지 않아 속도가 느립니다. 따라서 sys.stdin.readline() 함수를 사용하여 입력 속도를 향상시킬 수 있습니다.import sysdata = sys.stdin.readline().rstrip()sys.stdin.readline()은 한 줄의 입력을 빠르게 받아옵니다.입력받은 문자열의 끝에는 줄바꿈 문자..

Coding/Python 2024.10.06

[프로그래머스] [Python] (Level 3) 불량 사용자

https://school.programmers.co.kr/learn/courses/30/lessons/64064 문제개발팀 내에서 이벤트 개발을 담당하고 있는 "무지"는 최근 진행된 카카오이모티콘 이벤트에 비정상적인 방법으로 당첨을 시도한 응모자들을 발견하였습니다. 이런 응모자들을 따로 모아 불량 사용자라는 이름으로 목록을 만들어서 당첨 처리 시 제외하도록 이벤트 당첨자 담당자인 "프로도" 에게 전달하려고 합니다. 이 때 개인정보 보호을 위해 사용자 아이디 중 일부 문자를 '*' 문자로 가려서 전달했습니다. 가리고자 하는 문자 하나에 '*' 문자 하나를 사용하였고 아이디 당 최소 하나 이상의 '*' 문자를 사용하였습니다. "무지"와 "프로도"는 불량 사용자 목록에 매핑된 응모자 아이디를 제재 아이디 라..

[프로그래머스] [Python] (Level 2) n^2 배열 자르기

https://school.programmers.co.kr/learn/courses/30/lessons/87390 문제정수 n, left, right가 주어집니다. 다음 과정을 거쳐서 1차원 배열을 만들고자 합니다. n행 n열 크기의 비어있는 2차원 배열을 만듭니다. i = 1, 2, 3, ..., n에 대해서, 다음 과정을 반복합니다. 1행 1열부터 i행 i열까지의 영역 내의 모든 빈 칸을 숫자 i로 채웁니다. 1행, 2행, ..., n행을 잘라내어 모두 이어붙인 새로운 1차원 배열을 만듭니다. 새로운 1차원 배열을 arr이라 할 때, arr[left], arr[left+1], ..., arr[right]만 남기고 나머지는 지웁니다. 정수 n, left, right가 매개변수로 주어집니다. 주어진 과정..

[Python] 'Fatal error in launcher: Unable to create process using' 오류 해결 방법

오류> pipFatal error in launcher: Unable to create process usingpip 오류의 발생원인은 다음과 같다.환경 변수 문제: PATH 환경 변수에 Python 설치 경로가 정확하게 설정되지 않았을 수 있다.버전 충돌: 사용하는 Python 버전과 설치된 패키지 버전이 서로 호환되지 않을 수 있다. 해결방법# pip 재설치python -m pip install --upgrade --force-reinstall pip 해결방법은 pip를 재설치하면 된다.

Coding/Python 2024.06.04

[Python] Progress Bar(tqdm)을 깔끔하게 출력하는 방법은 무엇일까?

tqdm을 이용해서 for문이 실행될 때마다 실행결과를 확인하기 위해 print을 실행한다면 VSCode나 Jupyter에서 사진과 같이 출력된다. 이때 깔끔하게 출력하는 방법에 대해 알아보자. tqdm 기초는 여기를 보면 된다.Jupyter와 VSCode에 대해 각각 설명하겠다. 일단 결론부터 말하자면 다음과 같은 코드를 사용하면 된다.from tqdm.auto import tqdm  Jupyter에서 tqdm 사용방법tqdm 라이브러리 내부의 notebook 모듈을 사용하면 간단하게 해결된다. from tqdm.notebook import tqdmimport timefor i in tqdm(range(100)): print(1) time.sleep(0.1) VSCode에서 tqdm 사용방법..

Coding/Python 2024.05.30

[Python] decorator(데코레이터)에 대해 알아보자

Python FastAPI를 공부하면서 데코레이터를 알게 되었는데 왜 어떻게 작동하는지 잘 이해가 가지 않아서 공부를 하게 되었고 이에 대해 내가 알게된 점에 대해 소개해보려고 한다. 코드는 여기에서 확인할 수 있다. 데코레이터란 무엇인가?데코레이터는 파이썬의 고급 기능 중 하나로, 함수나 메서드에 코드를 수정하지 않고 기능을 주입하는 방법입니다. 함수를 여러 기능으로 사용해야 하며 코드에 수정을 가하지 않을 때 자주 사용한다. 데코레이터는 함수로 인자를 받고, 함수를 감싸는 래퍼(wrapper)를 정의하여, 함수에 추가적인 기능을 할 수 있도록 한다.  데코레이터를 사용하는 이유는?사용하는데 여러가지 이유가 있다.코드 재사용 : 코드가 중복될 때 함수를 사용하는데 이때 함수를 여러 방법으로 사용하기 위..

Coding/Python 2024.05.29

[프로그래머스] [Python] (Level 2) 리코쳇 로봇

https://school.programmers.co.kr/learn/courses/30/lessons/169199 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr문제리코쳇 로봇이라는 보드게임이 있습니다.이 보드게임은 격자모양 게임판 위에서 말을 움직이는 게임으로, 시작 위치에서 목표 위치까지 최소 몇 번만에 도달할 수 있는지 말하는 게임입니다.이 게임에서 말의 움직임은 상, 하, 좌, 우 4방향 중 하나를 선택해서 게임판 위의 장애물이나 맨 끝에 부딪힐 때까지 미끄러져 이동하는 것을 한 번의 이동으로 칩니다.다음은 보드게임판을 나타낸 예시입니다....D..R..

[Python] pydantic에 대해 알아보자

FastAPI를 공부하면서 pydantic 라이브러리에 대해 알게 되었고, pydantic document를 보게 되면서 공부를 하게되어서 공부하고 깨달은 점에 대해 소개하고자 작성하게 되었습니다. Pydnatic overview Pydantic은 Python의 타입 힌트를 활용하여 데이터 유효성 검사와 설정 관리를 자동화하는 강력한 라이브러리입니다. 개발자가 데이터 모델을 정의할 때 명확한 데이터 타입을 지정함으로써, Pydantic은 이 모델을 기반으로 데이터의 유효성을 자동으로 검증합니다. 이 과정에서 데이터 타입의 불일치나 필드의 누락과 같은 문제를 즉각적으로 식별하고 처리할 수 있습니다 다시말하면, 명시해준 데이터 타입과 입력에 대해 data validation을 진행합니다. 이 때, 타입이 다..

Coding/Python 2024.04.21

[Python] Docstring에 대해 알아보자

안녕하세요, 오늘은 Python에서 사용하는 Docstring에 대해 설명해드릴려고 합니다. Docstring이란? Docstring은 Python에서 함수, 클래스, 모듈이나 메소드 등 첫 번째 줄에 위치하며, 코드의 목적이나 동작을 설명하는데 사용됩니다. 파이썬의 help함수를 이용해서 Docstring에 접근할 수 있으며, 코드의 이해를 돕고 다른 개발자들이 코드를 더 쉽게 사용할 수 있도록 합니다. 예시 >>> help(len) len(obj, /) Return the number of items in a container. Docstring 기본 구조 함수나 메소드의 Docstring: 함수의 작동 방식, 매개변수, 반환 값, 발생할 수 있는 예외 등을 설명합니다. 클래스의 Docstring: ..

Coding/Python 2024.04.16

[Python] tqdm - Python에서 진행률을 시각적으로 표시

오늘은 Python에서 긴 작업을 처리할 때 진행상황을 알 수 있도록 나타내주는 'tqdm'과 'trange'이 사용됩니다. 이 도구들을 사용하는 방법에 대해 소개해드리려고합니다. tqdm이란? 'tqdm'은 아랍어로 "진행"을 의미하는 단어에서 유래했으며, Python에서 반복 작업의 진행 상황을 프로그레스 바 형태로 표시해주는 라이브러리입니다. 사용 방법은 매우 간단하여, 기존의 for 루프나 반복 가능한 객체에 tqdm() 함수를 적용하기만 하면 됩니다. 파라미터 설명 및 구현 주요 파라미터 ncols : 진행률 표시줄의 너비(문자 단위)입니다. 자동 조정을 원하면 None을, 최대 너비로 하고 싶으면 0을 설정 ascii : True로 하면 '#'문자로 진행바가 표시 desc : 진행률 표시줄 앞..

Coding/Python 2024.03.20