분류 전체보기 71

[부스트캠프 AI Tech 프리코스 4강] Python Object Oriented Programming

OOP (Object-Oriented Programming) 객체지향 프로그래밍 객체(속성과 행동을 가짐) 개념을 프로그램(속성은 변수, 행동은 함수)으로 표현하는 것 파이썬은 객체 지향 프로그램 언어 클래스는 설계도(붕어빵틀), 실제 구현체는 인스턴스(붕어빵) 클래스의 선언 파이썬에서 클래스는 위와 같이 선언한다 () 괄호안 object는 안 넣어도 자동 상속된다 파이썬에서 클래스는 CamelCase로 작성한다 def __init__ 은 클래스의 속성과 초기 설정을 담당한다 self는 클래스로 만들어질 인스턴스(클래스로 만드는 새로운 변수)를 의미한다 클래스속 함수는 메소드라고 부르며 인스턴스.메소드명() 으로 사용한다 파이썬 클래스에는 __[ ]__ 모양을 하고 있는 특수한 함수들이 여러개 존재하는데..

[백준 파이썬(python) 10816번 문제 숫자 카드 2 ]

문제 설명 정수 조합의 숫자들을 숫자카드와 그 카드의 갯수로 딕셔너리(맵)로 정리해서 원하는 키 값을 넣었을때 갯수를 출력하는 문제 코드 import sys d = dict() N = int(sys.stdin.readline()) numbers = map(int, sys.stdin.readline().split()) for i in numbers: if i in d: d[i] += 1 else: d[i] = 1 M = int(sys.stdin.readline()) numbers = map(int, sys.stdin.readline().split()) result = [] for i in numbers: if i in d: result.append(d[i]) else: result.append(0) pri..

PS 2023.08.15

[백준 파이썬(python) 11279번 문제 최대힙 ]

문제 설명 파이썬에서는 우선순위 큐 (heapq)는 min-heap(최소힙)이 기본사항으로 되어있는데 이걸 max-heap으로 바꾸는 문제 min-heap: [-1,5,2,4] ===> [-1,2,4,5] ===> -1, 2 ,4 ,5 값을 넣을때 - 부호를 붙여주고 빼와서 쓸때 - 부호를 붙여주면 max-heap처럼 사용가능 max-heap : [-1,5,2,4] ===> [1,-5,-2,-4] ===> [-5,-4,-2,1] ===> 5 , 4 , 2 ,-1 코드 import sys import heapq input = sys.stdin.readline N = int(input()) li = [] for _ in range(N): num = int(input()) if num == 0: if li: ..

PS/큐(queue) 2023.08.14

우선순위 큐 min-heap , max-heap 만드는 법 파이썬

import heapq numbers = [] #min-heap 파이썬은 min-heap이 기본사항이라 값 넣으면 자동으로 루트(최상단)에 최소값이 옴 heapq.heappush(numbers,숫자) // 자동으로 오름차순(정확히는 이진트리 형식)으로 정렬 됨 print(heapq.heappop(numbers)) // 루트 노드에 있는 가장 작은 값 제거 후 반환 # 출력예시: heaqp[1,2,3,4....] # max-heap 숫자를 넣을때 - 부호를 붙여주고 꺼내쓸때 -부호를 다시 붙여주면 max-heap 가능 counts = [] heapq.heappush(counts, -숫자) print(-heap.heappop(counts)) # 출력예시: heapq[6,5,4,3,...] 파이썬에서 우선순위..

[백준 파이썬(python) 10845번 문제 큐 ]

문제 설명 하라는 대로 if문 오지게 따라치면 되는 간단한 문제 코드 import sys from collections import deque dq = deque() N = int(sys.stdin.readline()) for _ in range(N): command = sys.stdin.readline().split() if command[0] == "push": dq.append(int(command[1])) if command[0] == "pop": if len(dq) == 0: print(-1) else: print(dq.popleft()) if command[0] == "size": print(len(dq)) if command[0] == "empty": if len(dq) == 0: print..

PS/큐(queue) 2023.08.14

[백준 파이썬(python) 2164번 문제 카드2 ]

문제 설명 문제에 하라는 대로 따라 하면 되는 시뮬레이션 스타일 간단한 문제 코드 import sys from collections import deque q = deque() N = int(sys.stdin.readline()) for i in range(1, N + 1): q.append(i) while len(q) > 1: q.popleft() q.append(q.popleft()) print(q[0]) 큐를 써서 풀었는데 배열로 풀 수도 있다, 하지만 배열로 풀 경우 빅오가 N^2으로 문제의 시간 복잡도를 초과하기 때문에 통과하지는 못 한다

PS/큐(queue) 2023.08.14

리액트의 훅 기능들 요약 react hooks

0. 훅의 규칙 함수형 컴포넌트,혹은 커스텀 훅 내에서만 사용가능 컴포넌트의 루트위치에서만 가능(중첩 함수안에서 사용 불가능) 1. useState() import {useState} from 'react' const [title,setTitle] = useState('초기값') setTitle('변경값') //title = 변경값 // 객체도 가능 const [item,setItem] = useState({name:'',count:0}) //기존의 값을 업데이트 하는 방식 setTitlte((이전값)=> ( name:이전값.name, count: 이전값.count+1 ) 현재 값의 스냅샷인 title과 이 값을 변경해주는 함수 setTitle 로 이루어진 배열을 반환 리액트에서 변수값 변경시 컴포넌트가..

리액트(react) 2023.08.14

[백준 1874번 문제 파이썬(python)] [스택 수열] 문제가 이상한가 이해하기 어렵다

문제 내 독해력의 문제인지 문제 자체의 문제인지 알 수 없으나 도통 이해할 수가 없었다 그래서 다른 분이 설명해둔 것(이분도 약간 잘 못 이해했다)를 보고 이해를 했다 설명 입력으로 들어오는 수열(숫자의 나열)을 스택에서 뽑아와서 똑같이 만드는게 우리의 목표이다 스택이라는 공간이 있는데 여기에는 1부터 n(첫줄에 제시되는 수)까지의 수가 오름차순으로 1부터 차례대로 들어간다 그러니 위의 예제를 예로 들면 [1...2...3...4] 까지 하나씩 스택에 넣다가 4와 수열의 첫번째 숫자가 같으니 뽑아오는 것이다 그럼 스택에는 [1,2,3]이 남게되고 우연찮게 다음 숫자가 3으로 수열의 두번 째 숫자와 같으니 또 뽑아오고 스택에는 [1,2]가 남게된다 다음 숫자는 6이므로 6과 같아질 때까지 스택을 채워주면 ..

PS/스택(stack) 2023.08.13