본문 바로가기

Problem Solving/Python Concepts11

[Python] 노드(Node) - 자료구조 기본 단위 노드 관리할 데이터를 보관(존재)하는 곳을 노드(Node)라고 한다. 즉, 자료구조에서 관리하고 있는 정보들 중 하나를 저장하고 있는 단위이다. 주로 연결 리스트라고 불리는 링크드 리스트에서 사용되며 연결리스트에서 노드는 데이터 값 + 포인터로 구성되어 있다. 대체로 자료구조를 공부할 때 이 노드를 클래스로 직접 구현한다. 하지만 자료구조에서 구조적 설계보다 연산(메소드)이나 연산으로 인한 구조적 변화에 학습을 집중해야될 때는 노드를 따로 구현하지 않는다. 이 경우 기본적으로 제공하는 자료형(대표적으로 리스트)으로 주로 진행한다. 즉, 구조적 설계를 필요로 할 때 노드를 클래스로 직접 구현한다. 2022. 10. 7.
[Python] 가장 파이썬스러운 enumerate 활용법 문제의 출력 조건이 정답 조건에 해당하는 원소의 인덱스를 출력하는 것이었는데 enumerate를 활용하여 인덱스를 추출하는 과정을 돌아가지 않고 바로 뽑을 수 있다는 것을 알게 되었다. 일반 for문을 사용하는 것이 가장 파이썬스럽지 않은 방법이라고 한다. ^^ enumerate 함수를 이용하면 출력형식이 무조건 tuple 형식으로 나오기 때문에 인덱스 값만 빼오고 싶거나, 원소값만 빼오고 싶은 경우 위와 같은 두 방식을 이용하여 추출할 수 있다. abc = ['A', 'B', 'C'] # 일반 for문: for 원소 in 목록: # 목록 => 리스트, 튜플, 문자열, 반복자 등 순서가 있는 모든 데이터 타입 for letter in abc: print(letter) # 일반 for문: 리스트의 인덱스와.. 2022. 10. 6.
[Python] 리스트를 join 함수 활용하여 문자열로 만들기 리스트에 있는 특정 str 값들을 뽑아서 어떤 단어이다! 라고 설명하고 싶은데 구현이 안 되는 부분이 있었다. join() 함수를 사용하여 리스트 내의 원소들을 문자열로 합쳐줄 수 있다. join() 함수는 기준을 가지고 문자열로 엮는데 위 사진에서는 공백을 활용하여 문자열을 붙이게끔 만들어주었다. 또한, join() 함수 안에 들어갈 해당 리스트를 넣는데 stack[-4:]를 넣어줬기 때문에 뒤에서 4번째까지의 원소를 의미한다. 뒤에서 네번째까지의 원소를 문자열로 출력하게 되면 PPAP가 나오는 것을 확인할 수 있다. stack = ['P', 'P', 'A', 'P', 'P', 'A', 'P'] print("스택 뒤에서 4번째 원소: ", stack[-4]) print("스택 뒤쪽의 4개 원소: ", .. 2022. 10. 6.
[Python] 파이썬 영문 대소문자 변환 참고 공부) https://mwultong.blogspot.com/2006/12/python-uppercase-lowercase-capitalize.html 2022. 9. 27.
[Python] 순열 permutations, 조합 combinations 순열과 조합을 직접 구현하려다가 구현의 벽에 부딪혔고, (ㅠㅠ) 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) .. 2022. 9. 27.
[Python] 리스트의 문자열을 int로 변환 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())) 2022. 9. 27.
[Python] 파이썬 데이터 입력받기 # 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.. 2022. 9. 26.
[Python] 파이썬 숫자 각 자리수 분리 number = 123 num_list = list(map(int, str(number))) print(num_list) 2022. 9. 26.
[파이썬] 03. 자료형(정수, 실수, 논리형, 문자열) 1. 자료형 (1) 기본 자료형(정수형, 실수형 변수) 기본 자료형 (정수형 변수를 2진수, 8진수, 16진수 형태로 표현) (2) 부울자료형(논리형) 부울자료형(논리형)은 다른 자료형과 달리 True 또는 False값만 사용가능 boolean: 참(1)/거짓(0) 참(True), 거짓(False)를 나타내는 불(bool) 자료형이 있다. 할당은 '=' 우리가 아는 '같다' 등호는 '==' 비교 연산자를 이용해 논리형 데이터를 표현 (3) 문자열 문자열(String)은 글자를 표현하는 자료형 문자열 객체는 따옴표(' ' 또는 " ")를 통해 표현 가능 어떤 따옴표를 쓰는지 상관없지만 짝이 맞아야함! split(): 문자열의 공백을 기준으로 문자열을 나누어주는 함수 find(): 문자열을 검색 후 해당하는.. 2021. 9. 19.