본문 바로가기
  • AI 개발자가 될래요

Python46

[Python] deque의 개념과 사용법, 장점 [Python] deque의 개념과 사용법, 장점 deque란?양방향 큐(queue)로, 앞, 뒤 양쪽 방향에서 엘리먼트(element)를 추가하거나 제거할 수 있다. deque의 장점양 끝 엘리먼트의 append와 pop이 압도적으로 빠르다.컨테이너(container)의 양끝 엘리먼트(element)에 접근하여 삽입 또는 제거를 할 경우, 일반적인 리스트(list)가 이러한 연산에 O(n)이 소요되는 데 반해, 데크(deque)는 O(1)로 접근 가능하다. deque 사용법우선, 라이브러리 import 를 해줘야 한다.from collections import dequel = [1, 2, 3, 4]d = deque(l) 리스트를 deque()의 입력으로 넣어주면 양방향 큐가 만들어진다. 길이가 정해진 .. 2025. 2. 6.
[Python] 유용한 빌트인 함수 모음 / replace, re.compile, lower, 합집합교집합, Counter, lambda로 sorted() [Python] 유용한 빌트인 함수 모음 .replace('a', 'b')str에 붙여 사용되며, 문자열에 있는 모든 a를 b로 변경.연속해서 사용도 가능하다. 아래 예시를 보자.문자열 11111에서 1을 #으로, 0을 공백으로 바꾸려면 아래처럼 replace를 연달아 사용하면 된다.'11111'.replace('1', '#').replace('0', '') 1이 #으로 바뀐 것을 볼 수 있다.re.compile()정규 표현식.사용하기 전에 import re 를 해줘야 한다.메소드 안에 r'' 형태로 문자열의 규칙을 설명한다.import reanswer = re.compile(r'')예시로 이해하자. '패턴' 변수는 어떠한 문자열의 규칙을 알려주는 정규표현식이다.해석해보면 다음과 같다.1. ()()()로.. 2025. 2. 5.
[Python] 정수로 이진수 or 연산 구현하기 [Python] 정수로 이진수 or 연산 구현하기 이진수의 or 연산은 같은 자리(인덱스)에 있는 숫자 둘 중 하나라도 1이면 1, 둘 다 0이면 0을 출력한다.아래 예시를 보자.파이썬에서 정수를 이진수로 변경하는 빌트인 함수는 bin()이다.이는 앞에 0b가 붙은 스트링 타입으로 출력된다. 9의 이진수 01001과 30의 이진수 11110을 or 연산하면 11111이 나와야 한다.원리대로 한다면, 모든 인덱스를 돌아가며 한 자리 씩 숫자를 비교해야 하는데파이썬에서는 이보다 훨씬 간단한 빌트인 연산자를 제공한다.| 바로 | (or) 연산자이다. 이는 정수끼리 연산해도 이진수의 or 연산 결과를 정수로 출력한다.예시를 보자.9|30 을 출력하면 31이 나온다.이는 01001 or 11110 의 결과인 11.. 2025. 2. 5.
[코테공부/Softeer/Python] [한양대 HCPC 2023] Yeah, but How? [코테공부/Softeer/Python] [한양대 HCPC 2023] Yeah, but How? https://softeer.ai/practice/9498 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai  나의 풀이1. 아이디어- Python 5초 안에 풀어야 하므로 시간 효율화를 위해 pop() 사용.- str을 list로 바꿔서 pop()을 사용하는데, 이는 마지막 원소부터 출력하기 때문에 원본 문자열 S의 순서를 뒤집음.- 처음 시작 괄호는 '('이 될 수 밖에 없음.- previous와 present 변수를 설정하여 이전에 들어온 괄호와 현재 괄호가 같으면 넘어가고, 다르면 1 혹은 +를 추가함. 2. 코드import syss = list(input())[::-1]previou.. 2025. 1. 31.
[코테공부/Softeer] 나무 공격 Python [코테공부/Softeer] 나무 공격 Python https://softeer.ai/practice/9657 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai  더 자세한 문제 내용은 링크 참고. 나의 해결법1. 아이디어각 행 별로 1의 개수가 몇 개인지 count하여 1차원 배열로 저장한 뒤, 공격 범위 행 인덱스의 값을 1씩 빼주면 되겠다. 코드import sysinput = sys.stdin.readlinen, m = list(map(int, input().split()))count_1 = [input().count("1") for i in range(n)]lr1 = list(map(int, input().split()))l1, r1 = lr1[0]-1 if lr1[0]>0 el.. 2025. 1. 31.
[Python] zip() 함수 사용법 / 가장 긴 길이에 맞춰 zip() 사용법 파이썬 zip() 함수 사용법 / 가장 긴 길이에 맞춰 zip() 사용법 파이썬에는 이터러블 객체에 대한 처리를 수행하는 몇 가지의 내장함수가 있다. zip() zip() 함수는 여러 이터러블 객체를 받아 튜플을 반환한다. 이 때 zip()은 가장 짧은 이터러블 길이만큼 결과를 반환한다. 예를 들면 다음과 같다. 리스트 x, y, z 중 가장 길이가 짧은 2에 맞춰서 결과를 반환하는 것을 볼 수 있다. 가장 긴 길이에 맞추고 싶을 때 zip() 사용법 때에 따라서는 가장 긴 길이에 맞춰야 할 때도 있다. 그럴 때는 itertools.zip_longest() 함수를 사용해야 한다. 이 때 fillvalue 인수에 원하는 값을 넣어주면 빈 칸에 들어갈 값을 임의로 정할 수 있다. 위의 예시는 빈 칸에 들어갈.. 2024. 1. 17.