본문 바로가기

전체 글

(109)
파이썬 for loop 사용하기 프로그래밍에서 반복문은 특정 코드를 여러 번 실행할 때 사용한다. 파이썬에서는 for 루프를 사용하여 리스트, 튜플, 문자열 등의 시퀀스 요소들을 하나씩 순회하며 작업할 수 있다. for 루프의 기본 구조for 루프의 기본 구조는 다음과 같다:for 변수 in 시퀀스: 실행할 코드 이 구조를 이해하기 위해 예제를 살펴보자. 예제 코드는 방문할 웹사이트들을 website 튜플에 저장한 다음, for 문을 이용햐각 웹사이트를 하나씩 순회하면서 돌아가는 코드이다.  예제 코드websites = ( "google.com", "airbnb.com", "twitter.com", "facebook.com")for website in websites: print("potato is equals to", ..
파이썬 메서드(Method) 파이썬에서 메서드는 데이터에 결합된 함수다. 즉, 어떤 물건(객체)에서 다양한 도구를 가지고 편하게 코딩할 수 있도록 붙어 있는 특별한 기능(함수)이다. 예를 들면, 청소기가 있는데, 청소기 흡입구에 다양한 사이즈의 청소솔을 끼워서 창문 틈도 청소할 수 있게 해주고, 좁은 복도도 효율적으로 청소할 수 있게 해주는 것과 비슷하다. 메서드를 사용하면, 그 물건의 상태를 바꾸거나 어떤 일을 시킬 수 있다. 파이썬 표준 함수는 매우 다양한 기능을 보유하고 있고, 이를 활용하면 물건(객체)을 더 쉽게 다룰 수 있다! 이번 글에서는 파이썬 메서드의 개념과 활용법을 설명하고, 문자열 메서드인 replace를 예제로 살펴보겠다. 파이썬 메서드란?메서드는 특정 객체에 종속된 함수로, 객체의 데이터를 처리하거나 조작하는 ..
파이썬 데이터 구조: 리스트(List), 튜플(Tuple), 딕셔너리(Dictionary) 파이썬에서 데이터를 저장하고 관리하는 다양한 방법이 있다. 그 중에서도 리스트(List), 튜플(Tuple), 딕셔너리(Dictionary)는 가장 기본적이고 중요한 데이터 구조다.리스트(List)리스트는 순서가 있는 변경 가능한 데이터 구조로, 대괄호 []를 사용하여 정의한다. 리스트는 다양한 데이터 타입을 포함할 수 있으며, 요소를 추가, 삭제, 수정할 수 있다.리스트 생성 및 사용 예제# 리스트 생성fruits = ["apple", "banana", "cherry"]# 요소 접근print(fruits[0]) # 출력: apple# 요소 추가fruits.append("orange")print(fruits) # 출력: ['apple', 'banana', 'cherry', 'orange']# 요소 삭..
파이썬에서 조건문과 반복문 사용하기: if, else, elif, while 파이썬은 간결하고 직관적인 문법을 제공하여 프로그래밍을 쉽게 배우고 사용할 수 있게 한다.그 중에서도 조건문과 반복문은 프로그램의 흐름을 제어하는 데 필수적인 요소다.이번 글에서는 파이썬의 조건문 if, else, elif와 반복문 while의 사용법에 대해 알아보겠다.조건문: if, else, elif조건문은 특정 조건을 평가하여 코드 블록의 실행 여부를 결정한다. 파이썬에서는 if, else, elif 키워드를 사용하여 조건문을 작성한다.if 문if 문은 주어진 조건이 참(True)일 때 특정 코드를 실행한다. 기본 구조는 다음과 같다:if 조건: 실행할 코드x = 10if x > 5: print("x는 5보다 큽니다.") 위 코드에서 x가 5보다 크므로 "x는 5보다 큽니다."가 출력된다..
파이썬 randint 함수 소개 프로그래밍을 하다 보면 무작위 숫자가 필요할 때가 많다. 예를 들어, 게임을 만들 때 주사위 굴리기, 난수 생성, 랜덤 이벤트 등 여러 상황에서 유용하게 사용된다. 파이썬에서는 이러한 무작위 숫자를 생성하기 위해 random 모듈을 제공하고, 그 중에서도 randint 함수는 특정 범위 내의 정수를 무작위로 반환하는 기능을 한다. 이번 글에서는 randint 함수를 잘 이해할 수 있도록 간단한 숫자 맞추기 게임을 만들어보겠다.randint 함수란?randint 함수는 random 모듈에 포함되어 있으며, 두 개의 인자를 받아 그 범위 내에서 무작위 정수를 반환한다. randint(a, b)는 a와 b를 포함한 범위에서 임의의 정수를 반환한다. 여기서 중요한 점은 a와 b 모두 포함된다는 점이다.randi..
[이중 연결 리스트] 노드를 맨 뒤에 삽입하는 방법 이번에는 노드를 맨 뒤에 삽입하는 방법을 알아보자. 첫 번째 노드를 생성하는 과정은 동일하다.노드를 맨 앞에 삽입할 때는 헤드의 위치를 계속 변경하면서 기존 노드가 뒤로 밀려나고 새로운 노드가 맨 앞에 생성되었다 (역순 연결). 그런데 노드를 맨 뒤에 삽입할 때는 테일의 위치를 계속 변경하면서 새로운 노드가 뒤에 추가된다.  맨 처음 첫 노드를 값 5로 생성하면 이 노드는 head이자 tail이 된다. 노드를 맨 뒤에 삽입하면, 새로운 노드가 기존의 마지막 노드 뒤에 추가된다. 예를 들어, 새 노드를 값 6으로 삽입하면 다음과 같은 과정이 진행된다. 새로운 노드의 prev를 현재의 tail로 설정한다.현재의 tail의 next를 새로운 노드로 설정한다.새로운 노드를 tail로 설정한다.이 과정이 반복되면..
[이중 연결 리스트] 노드 구조체, 노드 생성, 노드 맨 앞 추가, 생성 된 순서의 역순 연결 이중 연결 리스트의 노드를 맨 앞에 삽입하는 함수에 대한 샘플 코드를 작성해보자. 이중 연결 리스트는 노드의 왼쪽과 오른쪽의 값이 서로 연결되어 있는 자료구조이다.  1. 구조체 정의 typedef struct doublyNode { int value; struct doublyNode* next; struct doublyNode* prev;} DNode; 이중 연결 리스트의 노드를 정의하는 구조체이다. 각 노드는 값 (value), 다음 노드에 대한 포인터(next),이전 노드에 대한 포인터(prev)를 가진다.  2. 전역 변수 DNode* head = NULL;DNode* tail = NULL;리스트의 시작과 끝을 가리키는 head , tail 포인터를 NULL 값으로 초기화해준다. ..
[단일 연결 리스트] 문자열 노드 전체 제거 단일 연결 리스트에서 모든 문자열 노드를 제거하는 방법에 대해 알아보도록 하자. 기존에 int나 double 같은 데이터가 포함된 노드를 제거할 때는 단순히 노드 자체만 제거하면 끝났다. 하지만 문자열이 포함된 노드를 제거할 때는 상황이 다르다. 예를 들어, "apple"이나 "strawberry"와 같은 문자열은 malloc을 통해 동적 할당된 메모리이다.   따라서, 문자열 연결 리스트의 노드를 제거할 때는 다음과 같은 두 가지 작업을 모두 수행해야 한다. 문자열에 할당된 동적 메모리 해제노드 자체의 메모리 해제여기서 중요한 점은 노드를 제거하기 전에 반드시 문자열의 메모리를 먼저 해제해야 한다는 것이다. 만약 노드를 먼저 제거하면 문자열의 주소를 가리키던 포인터가 사라져서 문자열의 메모리를 해제할 ..