일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- pintos
- 이진탐색트리
- 웹스크래핑
- javascript
- 백준
- 개발일지
- 우선순위큐
- BFS
- 행렬제곱
- typescript
- 구조체포인터
- 이진트리
- c언어
- 포인터
- BOJ
- react
- 정글
- 클린코드
- Git
- 분할정복
- SW사관학교정글
- 이분탐색
- 파이썬
- branch
- malloc
- DFS
- 힙
- AWS
- sw사관학교 정글
- beautifulsoup
- Today
- Total
목록Problem Solving/Python Concepts (11)
대범하게
노드 관리할 데이터를 보관(존재)하는 곳을 노드(Node)라고 한다. 즉, 자료구조에서 관리하고 있는 정보들 중 하나를 저장하고 있는 단위이다. 주로 연결 리스트라고 불리는 링크드 리스트에서 사용되며 연결리스트에서 노드는 데이터 값 + 포인터로 구성되어 있다. 대체로 자료구조를 공부할 때 이 노드를 클래스로 직접 구현한다. 하지만 자료구조에서 구조적 설계보다 연산(메소드)이나 연산으로 인한 구조적 변화에 학습을 집중해야될 때는 노드를 따로 구현하지 않는다. 이 경우 기본적으로 제공하는 자료형(대표적으로 리스트)으로 주로 진행한다. 즉, 구조적 설계를 필요로 할 때 노드를 클래스로 직접 구현한다.
문제의 출력 조건이 정답 조건에 해당하는 원소의 인덱스를 출력하는 것이었는데 enumerate를 활용하여 인덱스를 추출하는 과정을 돌아가지 않고 바로 뽑을 수 있다는 것을 알게 되었다. 일반 for문을 사용하는 것이 가장 파이썬스럽지 않은 방법이라고 한다. ^^ enumerate 함수를 이용하면 출력형식이 무조건 tuple 형식으로 나오기 때문에 인덱스 값만 빼오고 싶거나, 원소값만 빼오고 싶은 경우 위와 같은 두 방식을 이용하여 추출할 수 있다. abc = ['A', 'B', 'C'] # 일반 for문: for 원소 in 목록: # 목록 => 리스트, 튜플, 문자열, 반복자 등 순서가 있는 모든 데이터 타입 for letter in abc: print(letter) # 일반 for문: 리스트의 인덱스와..
리스트에 있는 특정 str 값들을 뽑아서 어떤 단어이다! 라고 설명하고 싶은데 구현이 안 되는 부분이 있었다. join() 함수를 사용하여 리스트 내의 원소들을 문자열로 합쳐줄 수 있다. join() 함수는 기준을 가지고 문자열로 엮는데 위 사진에서는 공백을 활용하여 문자열을 붙이게끔 만들어주었다. 또한, join() 함수 안에 들어갈 해당 리스트를 넣는데 stack[-4:]를 넣어줬기 때문에 뒤에서 4번째까지의 원소를 의미한다. 뒤에서 네번째까지의 원소를 문자열로 출력하게 되면 PPAP가 나오는 것을 확인할 수 있다. stack = ['P', 'P', 'A', 'P', 'P', 'A', 'P'] print("스택 뒤에서 4번째 원소: ", stack[-4]) print("스택 뒤쪽의 4개 원소: ", ..
참고 공부) https://mwultong.blogspot.com/2006/12/python-uppercase-lowercase-capitalize.html
순열과 조합을 직접 구현하려다가 구현의 벽에 부딪혔고, (ㅠㅠ) import itertools를 이용하여 간편하게 순열과 조합을 이용할 수 있는 방법을 찾았다. 순열 permutation 순열이란 몇 개를 골라 순서를 고려해 나열한 경우의 수를 말한다. 즉, '서로 다른 n개 중 r개를 골라 순서를 정해 나열한 경우의 수'이다. 순열은 순서를 고려하기 때문에 [A, B, C]의 리스트에서 2개의 원소를 골라 순서를 정해 나열하면 [(A, B), (A, C), (B, A), (B, C), (C, A), (C, B)] 이다. 즉, (A, B)와 (B, A)는 다른 것이다. import itertools arr = ['A', 'B', 'C'] nPr = itertools.permutations(arr, 2) ..
1. map 함수 활용 # list_a = ['1', '2', '3', '4'] -> list_a = [1, 2, 3, 4] 로 바꾸고 싶을 때, list_a = map(int, list_a) 2. 입력 받은 n을 통해 n개의 int형 num 리스트를 출력 import sys n = int(sys.stdin.readline()) num = [int(sys.stdin.readline()) for i in range(n)] # int()를 씌워줌으로써 int 형태로 변환해준다. 3. 입력받기에서 int로 받고 싶다면 list(map(int, sys.stdin.readline().split()))
# 1. 하나의 값만 입력받을 때 sys.stdin.readline().strip() # 2. 입력이 한 줄로 여러 값이 들어왔을 때 sys.stdin.readline().split() 결과: ['20', '1', '15', '8', '4', '10'] # 3. 입력이 한 줄로 여러 값이 들어왔을 때, 리스트의 요소들이 int일 경우 list(map(int, sys.stdin.readline().split())) 결과: [20, 1, 15, 8, 4, 10] # 4. 입력이 여러 줄로 들어왔을 때 N = int(sys.stdin.readline()) num = [sys.stdin.readline().split() for i in range(N)] data = list(map(lambda s: s.stri..