파이썬

파이썬/자료구조와 알고리즘

파이썬 자료구조/알고리즘 07 : 리스트와 튜플의 스캔과 역순으로 배열하기

배열의 모든 원소 스캔하기 enumerate() 함수는 인덱스와 원소를 짝지어 튜플로 꺼내는 내장함수이다. range()와의 비교 x = ['a', 'b', 'c', 'd'] for i in range(len(x)): print(f'x[{i}] = {x[i]}') x[0] = a x[1] = b x[2] = c x[3] = d x = ['a', 'b', 'c', 'd'] for tup in enumerate(x): print(tup) for i, name in enumerate(x): print(f'x[{i}] = {name}') (0, 'a') (1, 'b') (2, 'c') (3, 'd') x[0] = a x[1] = b x[2] = c x[3] = d 튜플 형태를 반환하므로 인덱스와 값을 따로 뽑아..

파이썬/자료구조와 알고리즘

파이썬 자료구조/알고리즘 06 : 기본 자료구조, 배열3

최댓값 구하는 프로그램 만들기 배열, 함수를 사용하여 복수의 모듈로 최댓값을 구하는 프로그램을 구현한다. 파일 이름을 max.py라고 가정한다. from typing import Any, Sequence def max_of(a: Sequence) -> Any: maximum = a[0] for i in range(1, len(a)): if a[i] > maximum: maximum = a[i] return maximum if __name__ == '__main__': print('배열의 최댓값 구하기') num = int(input('원소 수 입력 : ')) x = [None] * num for i in range(num): x[i] = int(input(f'x[{i}]값을 입력하세요. : ')) pri..

파이썬/자료구조와 알고리즘

파이썬 자료구조/알고리즘 05 : 기본 자료구조, 배열2

C와 C++, Java등의 언어에서는 =를 결합 연산자로 사용한다. a = b = 1 b에 1을 대입하여 얻은 결과를 a에 대입하므로 a = b = 1이 될 수 있다. 그러나 파이썬에서는 =가 연산자가 아니다. 같은 코드를 파이썬에서 입력하면 오류가 발생한다. 파이썬에서는 리스트와 튜플 모두 배열을 의미한다. 리스트와 튜플을 자료구조 관점에서 배열로 이야기 할 수 있다. 빈 배열 판단하기 if x: # x가 비어 있지 않으면(True) 실행 else: # x가 비어 있으면(False) 실행 비교 연산자로 배열의 대소, 등가 관계 판단 print([1, 2, 3] == [1, 2, 3]) print([1, 2] < [1, 3]) print([1, 2, 3]

파이썬

[python] 정렬 함수 sort(), sorted()

둘 다 리스트를 오름차순, 내림차순으로 정렬하는 기능을 가지고 있다. .sort()는 리스트의 원본 값을 직접 수정하되, 정렬한 값을 반환하지는 않는다. a = list(map(int, input().split(" "))) print(f'정렬 전 : {a}') a.sort() print(f'정렬 후 : {a}') b = a.sort() print(f'리턴 값 확인 : {b}') a.sort(reverse = True) print(f'내림차순 정렬 : {a}') >> 2 6 1 4 3 정렬 전 : [2, 6, 1, 4, 3] 정렬 후 : [1, 2, 3, 4, 6] 리턴 값 확인 : None 내림차순 정렬 : [6, 4, 3, 2, 1] .sort()는 값을 반환하지 않으므로 b에는 아무 값도 주어지지 않..

파이썬

[python] 입력 받기 : input()과 sys.stdin.readline()

보통 input()으로 문자열 값을 입력받지만 반복문으로 여러 줄을 입력받아야 할 때는 시간 초과 문제가 발생할 수 있다고 한다. 따라서 이럴 경우에는 import sys로 모듈을 불러오고 sys.stdin.readline()을 사용하는 것이 좋다. import sys n = int(input('입력 : ')) sum = 0 for i in range(n): a = int(sys.stdin.readline()) sum += a print(sum) 결과 > 입력 : 5 1 2 3 4 5 출력 > sum = 15 input()과 마찬가지로 str형으로 받아지므로 정수로 사용할 때 형 변환에 유의해야 한다. 또한, 이것은 한 줄 단위로 입력받기 때문에 개행 문자가 포함된다.(input()은 값의 개행 문자를 ..

파이썬/자료구조와 알고리즘

파이썬 자료구조/알고리즘 04 : 기본 자료구조, 배열

파이썬에서는 배열을 리스트와 튜플로 구현 가능하다. 둘은 데이터 컨테이너라고 하며, 튜플의 경우 원소를 변경할 수 없다는 점에서 리스트와 차이가 있다. 리스트 원소를 변경할 수 있는 mutable형 객체. list01 = [] list02 = [1, 2, 3] list03 = ['A', 'B', 'C', ] # 맨 마지막 원소에 쉼표 생략 가능​ list()는 다양한 자료형 객체를 원소로 하는 리스트를 생성한다. list(), range()의 조합으로 특정 범위의 정수로 구성된 리스트를 생성할 수 있다. 리스트 원소 개수는 리스트 생성 때 반드시 결정해야하나, 원솟값을 지정하지 않을 경우에는 None을 사용하면 가능하다. list01 = list([1, 2, 3]) list02 = list('ABC') ..

파이썬/자료구조와 알고리즘

파이썬 자료구조/알고리즘 03 : 파이썬과 C언어의 변수 저장 방식 차이

파이썬과 C언어의 변수 저장 방식 차이 C언어 메모리 공간을 할당받고 값을 집어넣어서 사용한다. 방식 1 : 정적 메모리 할당 컴파일시 고정된 크기/타입의 메모리 공간을 할당받아서 사용 가능.(스택 공간) 크기가 정해지면 중간에 바꿀 수 없음 소멸시 운영체제가 자동으로 메모리를 반납 int a = 0; a라는 변수가 int형 크기만큼 메모리 공간을 할당받아서 0이라는 값을 넣음. 프로그램 종료시 운영체제가 자동으로 메모리 반납 방식 2 : 동적 메모리 할당과 포인터 런타임에 원하는 크기/타입의 메모리 공간을 만들고, 그 공간을 가리키는 주소를 포인터 변수에 저장하여 사용.(힙 공간) 포인터 변수는 주소를 가리키는 변수. 소멸시 메모리 반납을 수동으로 해줘야 함. char *str = NULL; # 포인터..

파이썬/자료구조와 알고리즘

파이썬 자료구조/알고리즘 02 : 알고리즘 기초2

반복 과정에서 조건 판단 다음은 n을 입력받고 1부터 값을 증가시키면서 홀수인 경우 +, 짝수인 경우-를 출력하는 코드이다. n = int(input('몇 개를 출력? :')) for i in range(1, n+1): if i % 2: print('+', end='') else : print('-', end='') print() 이 코드는 n의 값이 커지면 if문도 그만큼 반복되어야하므로 상황에따라 유연하게 수정하기 어려워진다. 개선한 코드 n = int(input('몇 개를 출력 :')) for _ in range(n // 2): print('+-', end='') if n % 2: print('+', end='') print() +-가 반복되는 부분은 반복문에서 모두 출력되도록 하고, 입력받은 값이..

파이썬/자료구조와 알고리즘

파이썬 자료구조/알고리즘 01 : 알고리즘 기초1

알고리즘 : 어떠한 문제를 해결하기 위해 정해놓인 일련의 절차 자료구조 : 컴퓨터에 정보를 효율적으로 저장하고 관리하는 방법 알고리즘과 자료구조는 서로 상호 보완 관계에 있다. 자료구조를 만드는 과정이 알고리즘으로 순서화되어 있기 때문이다. 이 포스팅을 하면서 코딩테스트에 대한 대비뿐만 아니라, 논리적인 사고 능력을 기르고 파이썬을 파이썬스럽게 잘 활용할 수 있는 방법들을 배우는데 큰 도움이 되기를 기대한다. print('세 정수의 최댓값 구하기') a = int(input('정수 a의 값을 입력하시오')) b = int(input('정수 b의 값을 입력하시오')) c = int(input('정수 c의 값을 입력하시오')) maximum = a if b > maximum: maximum = b if c ..

lazarus0320
'파이썬' 카테고리의 글 목록 (2 Page)