Develop

알고리즘 공부 시작! 본문

CS/알고리즘

알고리즘 공부 시작!

230801 2025. 5. 23. 02:37

안녕하세요  .ᐟ

부캠에서 알고리즘 평가를 보는데, 공부해본적이 없는지라.. 백지를 내고 속상해서 공부를 해보려고 합니다 🥲

 

사둔 강의와 책으로 이론 + 문제풀이 식으로 공부할 예정입니다.

일단은 혼자서 시작하고, 팀원분들이나 지인과 스터디를 할 수 있으면 해보겠습니다 .ᐟ 

 

첫날은 언어를  Python 으로 정하고, 해당 문법의 일부를 공부했습니다.

 

 


 

Chapter1. 파이썬 기본 문법

0. 자료형

  • Numeric
    • int, float, complex
    • 정수, 실수, 복소수
  • Sequence
    • list, tuple, range
    • 연속적으로 할당, 관리하는 자료구조
  • Set
    • set
    • 집합을 표현하고 중복값을 허용하지않는 자료구조
  • Map
    • dict
    • 키, 값을 쌍으로 저장하는 자료구조
  • Text
    • str
    • 문자열 (파이썬은 문자와 문자열을 구분하지않음, ‘ ‘ 과 “ “ 중 어느것을 써도 무방함)
  • Misc.
    • bool, bytes, None
    • 기타 데이터 타입

 

1. 변수

# 변수 선언
이름 = "홍길동"
print(이름) # 홍길동

# 값 변경
이름 = "홍길덩"
print(이름) # 홍길덩

 

 

2. 배열

과일들 = ["딸기", "사과", "배"]

# 0 번째 인덱스 출력
print(과일들[0]) # 딸기

 

 

 

3. 반복문

# 반복문을 이용해 딩코딩코를 10번 출력
for 1 in range(10):
		print("딩코딩코")

# 과일들 이라는 배열을 반복문을 이용해서 출력
과일들 = ["딸기", "사과", "배"]
for 과일 in 과일들: # 원소를 배열에 하나하나 담아줌
		print(과일)

 

 

 

4. 조건문

나이 = 29
# 조건문을 이용해서 나이가 20 이상이라면 "성인입니다"
# 아닐경우, "성인이 아닙니다" 라고 출력
if 나이 >= 20:
		print("성인입니다")
else:
			print("성인이 아닙니다")
			
			
현재시간 = 21
# 조건문을 이용해서 운영시간이 17시 이상 23시 이하라면 "운영시간입니다" 라고 출력
if 운영시간 >= 17 and 운영시간 <= 23:
		print("운영시간입니다")

 

 

 

5. 함수

# 함수를 이용해 여러 손님을 대상으로 신분증 검사를 하세요
# 나이가 20 이상이라면 "성인입니다"
# 아니라면 "성인이 아닙니다" 라고 출력

손님1_나이 = 18
손님2_나이 = 30
손님3_나이 = 3
손님4_나이 = 88

# 함수 만들기
def 신분증검사(나이):
		if 나이 >= 20:
				print("성인입니다")
		else:
				print("성인이 아닙니다")
				
# 함수 사용하기
신분증검사(손님1_나이) # print("성인이 아닙니다")
신분증검사(손님1_나이) # print("성인입니다")
신분증검사(손님1_나이) # print("성인이 아닙니다")
신분증검사(손님1_나이) # print("성인입니다")

 

 

 

6. 메서드

  • 문자열 내장 메서드(Built in method)
# replace, 치환
>>> a
'python Python'

>>> a = a.replace('python', 'Python')
>>> a
'Python Python'



# split, 문자열 나누기
>>> a.split()
['Python', 'Python']

>>> b = 'Study-Python'
>>> b.split('-')
['Study','Python']



# join, 리스트의 여러 문자열을 하나로 합침 (인수 미지정 시 공백을 추가해 하나의 문자열로 합침)
>>> b = '#'.join(b)
'Study#python'



# upper, 대문자로 모두 변경
>>> b.upper()
'STUDY#PYTHON'



# lower, 소문자로 모두 변경
>>> b.lower()
'study#python'



# strip, 문자열의 특정 문자 제거 (인수 미지정 시 공백을 제거)
>>> a = '   Python   '
>>> a.strip()
'Python'



# lstrip, 문자열의 왼쪽 공백 제거 or 특정문자 제거
>>> a = '!!!!!Python!!!!!'
>>> a.lstrip(!)
'Python!!!!!'


# rstrip, 문자열의 오른쪽 공백 제거 or 특정문자 제거
>>> a.rstrip(!)
'Python'



# find, 왼쪽을 기준으로 특정문자가 몇번째 있는지 찾기 (존재하지 않는 문자열을 찾으면 -1을 반환)
>>> a = 'Python is good'
>>> a.find('is')
7
>>> a.find('are') # 존재하지 않으니 -1 반환
-1



# rfind, 오른쪽을 기준으로 특정문자가 몇번째 있는지 찾기
>>> a = 'Python is good'
>>> a.rfind('good')
10



# {}.format , 여러 타입의 값이 들어있는 문자열 생성
>>> a = 10
>>> '{}'.format(a)
'10'



# {:b}, 10진수 -> 2진수의 문자열로 변경
>>> '{:b}'.format(a)
'1010'
>>> '{:032b}'.format(a)   # 032 -> 총 32자리로 출력, 모자라면 앞에 0을 채움
'00000000000000000000000000001010'

 

 

오늘은 이만 자보겠습니다~