반응형

python 86

[Python] Coding Test (프린터)

문제 설명 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린터를 개발했습니다. 이 새롭게 개발한 프린터는 아래와 같은 방식으로 인쇄 작업을 수행합니다. 1. 인쇄 대기목록의 가장 앞에 있는 문서(J)를 대기목록에서 꺼냅니다. 2. 나머지 인쇄 대기목록에서 J보다 중요도가 높은 문서가 한 개라도 존재하면 J를 대기목록의 가장 마지막에 넣습니다. 3. 그렇지 않으면 J를 인쇄합니다. 예를 들어, 4개의 문서(A, B, C, D)가 순서대로 인쇄 대기목록에 있고 중요도가 2 1 3 2 라면 C D A B 순으로 인쇄하게 됩니다. 내가 인쇄를 요청한 문서가 몇 번째로 인쇄되는지 ..

Python 2022.10.10

[Python] any()

any() 인자로 받은 반복 가능한 자료형 중 단 하나라도 True인 경우가 있으면 True를 반환하는 함수. 모든 요소가 False인 경우에만 False를 반환. or의 특징을 가지고 있음. ▶ 특징 반복가능한 자료형을 인자로 받음. 인자로 받은 요소중 하나라도 True면 True를 반환. 인자로 받은 자료형이 비어 있는 경우 False를 반환. ▶ 내부 함수 구조 def any(iterable): for element in iterable: if element: return True return False ▶ 예문 l1 = [1, 2, 3, 4, 5] any(l1) # True l1 = [1, 2, 3, 4, 5] if any(l1) : print('ok') # ok l1 = [1, 2, 3, 4, ..

Python 2022.10.10

[Python] Coding Test (카드2)

문제 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 한 장 남을 때까지 반복하게 된다. 우선, 제일 위에 있는 카드를 바닥에 버린다. 그 다음, 제일 위에 있는 카드를 제일 아래에 있는 카드 밑으로 옮긴다. 예를 들어 N=4인 경우를 생각해 보자. 카드는 제일 위에서부터 1234 의 순서로 놓여있다. 1을 버리면 234가 남는다. 여기서 2를 제일 아래로 옮기면 342가 된다. 3을 버리면 42가 되고, 4를 밑으로 옮기면 24가 된다. 마지막으로 2를 버리고 나면, 남는 카드는 4가 된다. N이 주어졌을 때, 제일 마지막에 남게 되는 카드를 구하는 프로..

Python 2022.10.10

[Python] Coding Test (괄호)

문제 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 부른다. 한 쌍의 괄호 기호로 된 “( )” 문자열은 기본 VPS 이라고 부른다. 만일 x 가 VPS 라면 이것을 하나의 괄호에 넣은 새로운 문자열 “(x)”도 VPS 가 된다. 그리고 두 VPS x 와 y를 접합(concatenation)시킨 새로운 문자열 xy도 VPS 가 된다. 예를 들어 “(())()”와 “((()))” 는 VPS 이지만 “(()(”, “(())()))” , 그리고 “(()” 는 모두 VPS 가 아닌 문자열이다. 여러분은 입력으로 주어진 괄호 문자열..

Python 2022.10.10

[Python] 완전탐색 & 이분탐색

완전탐색 & 이분탐색 ▶ 탐색이란 많은 데이터 속에서 원하는 데이터를 찾는것. 웹에서 특정 문자를 가진 웹 문서를 찾거나 신용카드나 버스카드 결제시 탐색 알고리즘을 사용한다. ▶ 탐색의 종류 완전탐색 Brute Force라고도 부르며 컴퓨터의 빠른 계산 성능을 활용하여 가능한 모든 경우의 술르 탐색하는 효율성 관점에서 최악의 방법. ▶ 완전탐색 구현방법 반복문 재귀함수 동저 계획법 백트래킹 탐욕법 ▷ 완전탐색의 반복문 구현 def solution(trump) : for i in range(len(trump)) : if trump[i] == 8 : return i return -1 ▷ 완전탐색의 재귀함수 구현 def solution(trump, loc): if trump[loc] == 8 : return ..

Python 2022.10.10

[Python] Coding Test (크레인 인형뽑기 게임)

문제 설명 게임개발자인 "죠르디"는 크레인 인형뽑기 기계를 모바일 게임으로 만들려고 합니다. "죠르디"는 게임의 재미를 높이기 위해 화면 구성과 규칙을 다음과 같이 게임 로직에 반영하려고 합니다. 게임 화면은 "1 x 1" 크기의 칸들로 이루어진 "N x N" 크기의 정사각 격자이며 위쪽에는 크레인이 있고 오른쪽에는 바구니가 있습니다. (위 그림은 "5 x 5" 크기의 예시입니다). 각 격자 칸에는 다양한 인형이 들어 있으며 인형이 없는 칸은 빈칸입니다. 모든 인형은 "1 x 1" 크기의 격자 한 칸을 차지하며 격자의 가장 아래 칸부터 차곡차곡 쌓여 있습니다. 게임 사용자는 크레인을 좌우로 움직여서 멈춘 위치에서 가장 위에 있는 인형을 집어 올릴 수 있습니다. 집어 올린 인형은 바구니에 쌓이게 되는 데,..

Python 2022.10.08

[Python] Stack & Queue

Stack 쌓다 라는 의미. 목록 혹은 리스트에서 접근이 한 쪽에서만 가능한 구조. LIFO 원리. ▶ stack 함수 push : 데이터 최상단에 데이터 추가. peak : 최상단의 데이터를 확인. pop : 최상단의 데이터를 추출. ▶ 직접 구현 ▷ Stack 클래스 생성 class Stack(list) : # push 정의 push = list.append # peek 정의 def peek(self): return self[-1] #pop은 list의 내장함수로 이미 존재 ▷ Stack에 데이터 추가 s = Stack() s.push(1) s.push(5) s.push(10) print('my stack is : ', s) # my stack is : [1, 5, 10] ▷ Stack에 데이터 추출..

Python 2022.10.08

[Python] Pivot Table

Pivot Table 엑셀에서 사용하는 피벗테이블과 비슷한 기능을 처리합니다. 4가지 필수 요소 컬럼 인덱스 로우 인덱스 데이터 값 (values) 데이터 집계 함수 (aggfunc) 피벗 테이블 변환 이후 xs()를 사용하여 깊은 데이터를 찾을 수 있습니다. [Python] 그룹연산 그룹연산 특정 기준을 적용하여 몇 개의 그룹으로 분할하여 처리하는 것. 복잡한 데이터를 어떤 기준에 따라 여러 그룹으로 나눠서 관찰하기에 좋습니다. 데이터를 집계, 변환, 필터링하는데 효 cruella-de-vil.tistory.com * 본인이 계속해서 사용하려고 노력해야합니다. (group_by)도 동일 ▶ 기본 구문 1 로우 인덱스 : class 컬럼 인덱스 : sex 데이터 값 : age 집계 함수 : 평균함수 df..

Python 2022.10.06

[Python] 그룹연산

그룹연산 특정 기준을 적용하여 몇 개의 그룹으로 분할하여 처리하는 것. 복잡한 데이터를 어떤 기준에 따라 여러 그룹으로 나눠서 관찰하기에 좋습니다. 데이터를 집계, 변환, 필터링하는데 효율적입니다. ▷ 그룹연산의 단계 split(분할) : 데이터를 특정 조건에 의해 분할. apply(적용) : 데이터를 집계, 변환, 필터링하는데 필요한 메서드를 적용합니다. combine(결합) : 2단계의 처리 결과를 하나로 결합합니다. ▶ groupby() 데이터프레임의 특정 컬럼을 기준으로 데이터프레임을 분할하여 그룹 객체를 반환합니다. 기준이 되는 컬럼은 1개도 가능하며 여러 컬럼을 리스트로 입력도 가능합니다. DataFrame.groupby() 분할 단계 ▷ 데이터를 가져옵니다. df_t1 = sns.load_d..

Python 2022.10.06

[Python] 데이터 프레임 연결

데이터프레임 연결 concat() merge() join() ▶ concat() DataFrame의 구성 형태와 속성이 같다면 컬럼/로우 중 어느 한 방향이라도 이어 붙여도 데이터의 일관성이 유지됩니다. 데이터 프레임의 형태를 유지하며 이어 붙이는 개념. ▷ 기본구문 pandas.concat(DataFrame) ▷ 데이터 프레임을 생성합니다. df1 = pd.DataFrame({'a': ['a0','a1','a2','a3'], 'b': ['b0','b1','b2','b3'], 'c': ['c0','c1','c2','c3']}, index=[0, 1, 2, 3]) df2 = pd.DataFrame({'a': ['a2', 'a3', 'a4', 'a5'], 'b': ['b2', 'b3','b4', 'b5'],..

Python 2022.10.06
반응형