[Linux]부트캠프 - 파일 및 폴더 생성
파일 및 폴더 생성
katok = [] # 카톡으로 연락이 많이 온 순서로 배열을 만들기 위해
def add_data(friend):
katok.append(None) # 빈칸 추가
kLen = len(katok) # 선형리스트의 길이를 구한다.
katok[kLen-1] = friend # 가장 마지막 위치에 친구를 추가
def insert_data(position, friend):
katok.append(None) # 빈칸 추가
kLen = len(katok) # 선형리스트의 길이를 구한다.
for i in range(kLen-1, position, -1):
# 배열의 마지막부터 순차적으로 지정한 위치까지 반복
katok[i] = katok[i-1] # 뒤쪽으로 데이터를 당겨줌
katok[i-1] = None # 당겨진 자리에 자리를 비워준다
katok[position] = friend # 그 자리에 데이터를 추가
def delete_data(position):
katok[position] = None # 지정 위치
kLen = len(katok) # 리스트의 길이를 구함
for i in range(position+1, kLen, 1):
# position이 3이라면, 4부터 리스트의 끝까지 1씩 증가 반복
katok[i-1] = katok[i] # 지정한 자리로 뒤에있는 값을 안쪽으로 밀어줌
katok[i] = None # 옮겨준 뒤 빈 공간을 None으로
del(katok[kLen-1]) # 빈 공간이 맨 뒤로 밀려나면 그 때 그것을 삭제
# 선형리스트에 값들을 추가하는 함수 사용
add_data('다현')
add_data('정연')
add_data('쯔위')
add_data('사나')
add_data('지효')
add_data('모모')
insert_data(3, '미나') # 3 위치에 미나를 추가
delete_data(4) # 4위치에 있는 사나가 지워짐
print(katok)
['다현', '정연', '쯔위', '미나', '지효', '모모']
if __name__ == '__main__':
while True:
select = int(input('선택하시오(1: 추가, 2: 삽입, 3: 삭제, 4: 종료) : '))
if select == 1:
data = input('추가할 데이터 : ')
add_data(data)
print(katok)
elif select == 2:
pos = int(input('삽입할 위치 : '))
data = input('추가할 데이터 : ')
insert_data(pos, data)
print(katok)
elif select == 3:
pos = int(input('삭제할 위치 : '))
delete_data(pos)
print(katok)
elif select == 4:
print(katok)
break
else:
print('잘 못 입력하셨습니다.1~4 의 숫자를 입력하세요.')
continue
선택하시오(1: 추가, 2: 삽입, 3: 삭제, 4: 종료) : 1
추가할 데이터 : 동준
['다현', '정연', '쯔위', '미나', '지효', '모모', '동준']
선택하시오(1: 추가, 2: 삽입, 3: 삭제, 4: 종료) : 1
추가할 데이터 : 박진영
['다현', '정연', '쯔위', '미나', '지효', '모모', '동준', '박진영']
선택하시오(1: 추가, 2: 삽입, 3: 삭제, 4: 종료) : 2
삽입할 위치 : 0
추가할 데이터 : 수지
['수지', '다현', '정연', '쯔위', '미나', '지효', '모모', '동준', '박진영']
선택하시오(1: 추가, 2: 삽입, 3: 삭제, 4: 종료) : 3
삭제할 위치 : 7
['수지', '다현', '정연', '쯔위', '미나', '지효', '모모', '박진영']
선택하시오(1: 추가, 2: 삽입, 3: 삭제, 4: 종료) : 4
['수지', '다현', '정연', '쯔위', '미나', '지효', '모모', '박진영']
memory = []
head, current, pre = None, None, None
dataArray = ['다현','정연','쯔위','사나','지효','동준','JYP']
# dataArray는 현재 정해진 요소 뿐만이 아니라 수백, 수천, 수만가지일 수도 있다.
class Node():
def __init__(self): # 초기화
self.data = None # 노드의 데이터 값
self.link = None # 노드를 연결해주는 화살표(링크)
def printNodes(start):
current = start # 지정한 노드를 현재 작업 노드로 설정
print(current.data, end = ' ') # 해당 데이터 값을 출력
while current.link != None: # 노드의 링크가 None(끝 값)이 아니면
current = current.link # 노드의 링크노드가 현재노드로 변환
print(current.data, end= ' ') # 또 다시 해당 데이터값 출력
print()
def insertNode(findData, insertData): # 삽입하는 함수
global memory, head, current, pre # 전역변수를 불러옴
# 첫 노드 앞에 삽입(헤드를 이용)
if findData == head.data: # 찾는 함수가 헤드(연결리스트의 첫)
node = Node() # 새 노드를 생성
node.data = insertData # 적어준 값을 노드의 값으로
node.link = head # 기존의 헤드가 생성한 노드의 링크로
head = node # 생성한 노드가 헤드 노드로
return
# 두번째 노드 이후 앞에 삽입
current = head # 찾는 값이 head가 아니므로 현재 작업 노드를 head로
while current.link != None: # 끝 값이 나올 때 까지
pre = current # 현재 작업 노드가 이전 작업 노드로
current = current.link # 링크 노드가 현재 작업 노드로
if current.data == findData: # 현재 노드의 값이 찾는 값이라면
node = Node() # 노드를 생성하고
node.data = insertData # 입력한 값을 데이터로 지정
node.link = current # 현재 작업 노드를 링크노드로
pre.link = node # 이전 작업 노드의 링크노드를 생성한 노드로 지정
return
# 마지막 노드 삽입
node = Node()
node.data = insertData
current.link = node
return
def deleteNode(deleteData): # 삭제하는 함수
global memory, head, current, pre
# 첫 노드를 삭제할 때
if deleteData == head.data: # 삭제할 값이 첫 노드의 데이터라면
current = head # 첫 노드를 현재 작업노드로
head = head.link # 첫 노드의 링크노드를 첫 노드로
del(current) # 현재 작업 노드 삭제
return
# 두번째 이후를 삭제
current = head
while current.link != None:
pre = current
current = current.link
if current.data == deleteData:
pre.link = current.link
del(current)
return
def findNode(findData): # 찾는 함수
global memory, head, current, pre
current = head
if current.data == findData:
return current # 노드를 통째로 돌려줌
while current.link != None:
current = current.link
if current.data == findData:
return current
return Node()
node = Node()
node.data = dataArray[0]
head = node
# '다현'이라는 데이터를 가진 첫번째 노드를 head로 지정
memory.append(node)
for data in dataArray[1:] : # 0번은 헤드로이미 지정했기 때문에
pre = node
node = Node()
node.data = data
pre.link = node
memory.append(node)
printNodes(head)
다현 정연 쯔위 사나 지효 동준 JYP
insertNode('다현', '화사') # 헤드 노드인 다현 앞에 화사가 추가되어 화사가 헤드가 된다.
printNodes(head)
화사 다현 정연 쯔위 사나 지효 동준 JYP
insertNode('사나', '솔라') # 헤드 노드가 아닌 사나 앞에 솔라가 추가
printNodes(head)
화사 다현 정연 쯔위 솔라 사나 지효 동준 JYP
insertNode('재남', '문별') # 재남이 존재하지 않아서 문별이 마지막에 추가
printNodes(head)
화사 다현 정연 쯔위 솔라 사나 지효 동준 JYP 문별
deleteNode('화사')
printNodes(head)
# head였던 화사가 잘 사라짐, 그리고 다현이 head 노드로 변경
다현 정연 쯔위 솔라 사나 지효 동준 JYP 문별
deleteNode('쯔위')
printNodes(head) # 쯔위가 잘 지워짐
다현 정연 솔라 사나 지효 동준 JYP 문별
deleteNode('재남')
printNodes(head) # 재남이 원래 없기때문에 변화가 없음.
다현 정연 솔라 사나 지효 동준 JYP 문별
fNode = findNode('솔라')
print(fNode.data)
솔라
fNode = findNode('쯔위') # 쯔위가 아까 삭제되어 없기때문에
print(fNode.data) # None을 출력
None
: 단순 연결 리스트에서 맨 끝 노드의 링크가 head
인 경우로 생각하면 된다.
SIZE = 5
stack = [None for _ in range(SIZE)] # 스택의 크기를 SIZE로 지정
top = -1 # 스택이 비어있는 상태(바닥 상태라 생각하자)
def isStackFull():
global SIZE, stack, top # 전역변수를 불러온다.
if (top >= SIZE-1): # 내용물의 머리가 통과 같거나 크다면
return True # 스택은 꽉찬거다(진실)
else:
return False # 아니라면 빈 공간이 있다.(거짓)
def isStackEmpty(): # 스택이 비었는지 확인하는 함수
global SIZE, stack, top # 전역 변수 불러옴
if (top <= -1): # 만약, 내용물의 머리가 바닥과 같거나 작다면
return True # 스택은 텅텅 비어있다.
else:
return False
def push(data): # 스택에 데이터를 넣어주는 함수
global SIZE, stack, top # 전역 변수 호출
if isStackFull(): # 만약 스택이 꽉찼다면
print('스택이 가득찼습니다.')
return # 아무일도 없다.
top += 1 # 꽉차지 않았다면 내용물의 머리의 높이가 1 높아짐
stack[top] = data # 해당 위치에 데이터 값을 넣어줌
def pop():
global SIZE, stack, top
if isStackEmpty(): # 스택이 비었다면,
print('스택이 텅텅 비었습니다.')
return # 아무일도 없다.
data = stack[top] # 맨 위의 내용물을 추출
stack[top] = None # 추출한 자리 비우기
top -= 1 # 내용물의 머리의 높이가 1 낮아짐
return data # 추출 데이터 반환
def peek(): # 맨 위에 뭐있는 확인하는 함수
global SIZE, stack, top
if isStackEmpty():
print('스택이 텅텅 비었어유')
return
return stack[top]
push('커피1')
push('커피2')
push('커피3')
push('커피4')
push('커피5')
print(stack)
push('커피6') # SIZE가 5이기 때문에 커피 5까지만 들어감.
['커피1', '커피2', '커피3', '커피4', '커피5']
스택이 가득찼습니다.
returnData = pop()
print('팝 --->', returnData)
returnData = pop()
print('팝 --->', returnData)
returnData = pop()
print('팝 --->', returnData)
print(stack)
팝 ---> 커피5
팝 ---> 커피4
팝 ---> 커피3
['커피1', '커피2', None, None, None]
print('다음에 빠질 것은?',peek())
다음에 빠질 것은? 커피2
큐(Queue)
자료 구조는 입구와 출구가 따로 있는 원통 형태: 스택과 비슷함. 다만 top이 아닌 front와 rear가 있음
SIZE = 5
queue = [None for _ in range(SIZE)] # list_comprehension으로 queue 생성
front = rear = -1
def isQueueFull(): # 큐가 꽉찼는지 확인하는 함수
global SIZE, queue, front, rear
if (rear == SIZE -1): # 꼬리(입구쪽)가 큐의 크기와 같다면
return True
else:
return False
def isQueueEmpty(): # 큐가 비었는지 확인하는 함수
global SIZE, queue, front, rear
if (rear == front):
return True
else:
return False
def enQueue(data): # 큐에 데이터를 넣는 함수
global SIZE, queue, front, rear
if (isQueueFull()):
print('큐가 꽉 찼습니다.')
return
rear += 1 # 꼬리가 입구쪽으로 증가한다.
queue[rear] = data
def deQueue(): # 큐에서 데이터를 빼는 함수
global SIZE, queue, front, rear
if isQueueEmpty():
print('큐가 비었습니다.')
return None
front += 1 # 머리가 출구에서 입구쪽으로 증가
data = queue[front]
queue[front] = None
return data
def peek(): # 다음 나올 데이터를 알려주는 함수
global SIZE, queue, front, rear
if isQueueEmpty():
print('큐가 비었습니다.')
return None
return queue[front+1]
enQueue('화사')
enQueue('솔라')
enQueue('문별')
enQueue('선미')
enQueue('동준')
print('출구<-----',queue,'<-----입구')
enQueue('아이유') # 큐의 SIZE가 5이므로 더이상 들어갈 자리가 없다.
print('출구<-----',queue,'<-----입구')
출구<----- ['화사', '솔라', '문별', '선미', '동준'] <-----입구
큐가 꽉 찼습니다.
출구<----- ['화사', '솔라', '문별', '선미', '동준'] <-----입구
print('밥 손님 : ', deQueue())
print('밥 손님 : ', deQueue())
print('밥 손님 : ', deQueue())
print('출구<-----',queue,'<-----입구')
print('밥 손님 : ', deQueue())
print('다음 손님.. 준비 ', peek())
print('밥 손님 : ', deQueue())
print('출구<-----',queue,'<-----입구')
밥 손님 : 화사
밥 손님 : 솔라
밥 손님 : 문별
출구<----- [None, None, None, '선미', '동준'] <-----입구
밥 손님 : 선미
다음 손님.. 준비 동준
밥 손님 : 동준
출구<----- [None, None, None, None, None] <-----입구
파일 및 폴더 생성
파일 시스템 탐색
도움말(man -> manual)
명령어 기초
유닉스(Unix)
특정 코드 지연 실행 - DispatchQueue.main.asyncAfter(deadline: )
Naming Conventions
안드로이드 폰과 맥북에어 M1 USB 테더링 성공
Simulator 풀 스크린 사용 방법
10807번 - 개수 세기
프로그래머스 Lv.1 풀이 코드 모음
프로그래머스 Lv.1 풀이 코드 모음
11047번 - 동전 0
11659번 - 구간 합 구하기 4
14888번 - 연산자 끼워넣기
9184번 - 신나는 함수 실행
24416번 - 알고리즘 수업 - 피보나치 수 1
2580번 - 스도쿠
9663번 - N-Queen
15652번 - N과 M (4)
15651번 - N과 M (3)
15650번 - N과 M (2)
25305번 - 커트라인
25304번 - 영수증
3003번 - 킹, 퀸, 룩, 비숍, 나이트, 폰
15649번 - N과 M (1)
2004번 - 조합 0의 개수
1676번 - 팩토리얼 0의 개수
9375번 - 패션왕 신해빈
1010번 - 다리 놓기
11051번 - 이항 계수 2
11050번 - 이항 계수 1
3036번 - 링
2981번 - 검문
1934번 - 최소공배수
2609번 - 최대공약수와 최소공배수
1037번 - 약수
5086번 - 배수와 약수
1358번 - 하키
1004번 - 어린 왕자
1002번 - 터렛
3053번 - 택시 기하학
2477번 - 참외밭
4153번 - 직각삼각형
3009번 - 네 번째 점
1085번 - 직사각형에서 탈출
11478번 - 서로 다른 부분 문자열의 개수
1269번 - 대칭 차집합
1764번 - 듣보잡
10816번 - 숫자 카드 2
1620번 - 나는야 포켓몬 마스터 이다솜
14425번 - 문자열 집합
10815번 - 숫자 카드
18870번 - 좌표 압축
10814번 - 나이순 정렬
1181번 - 단어 정렬
11651번 - 좌표 정렬하기 2
11650번 - 좌표 정렬하기
1427번 - 소트인사이드
2108번 - 통계학
10989번 - 수 정렬하기 3
2751번 - 수 정렬하기 2
2750번 - 수 정렬하기
22.06.25 ~ 27 부산 먹부림 기록
1436번 - 영화감독 숌
1018번 - 체스판 다시 칠하기
7568번 - 덩치
2231번 - 분해합
2798번 - 블랙잭
11729번 - 하노이 탑 이동 순서
2447번 - 별 찍기 - 10
17478번 - 재귀함수가 뭔가요?
10870번 - 피보나치 수 5
10872번 - 팩토리얼
9020번 - 골드바흐의 추측
4948번 - 베르트랑 공준
1929번 - 소수 구하기
11653번 - 소인수분해
2581번 - 소수
1978번 - 소수 찾기
10757번 - 큰 수 A+B
2839번 - 설탕 배달
2775번 - 부녀회장이 될테야
10250번 - ACM 호텔
2869번 - 달팽이는 올라가고 싶다
1193번 - 분수찾기
2292번 - 벌집
1712번 - 손익분기점
1316번 - 그룹 단어 체커
2941번 - 크로아티아 알파벳
5622번 - 다이얼
2908번 - 상수
1152번 - 단어의 개수
1157번 - 단어 공부
2675번 - 문자열 반복
10809번 - 알파벳 찾기
11720번 - 숫자의 합
11654번 - 아스키 코드
1065번 - 한수
4673번 - 셀프 넘버
15596번 - 정수 N개의 합
4344번 - 평균은 넘겠지
8958번 - OX퀴즈
25083번 - 새싹
Spark Bigdata Pipeline
Spark 3일차
Spark 2일차
1546번 - 평균
Spark 1일차
Hadoop🐘
3052번 - 나머지
2577번 - 숫자의 개수
2562번 - 최댓값
10818번 - 최소, 최대
Linux
MongoDB 조회 문제
MongoDB
1110번 - 더하기 사이클
10951번 - A+B - 4
Oracle 3️⃣
ORACLE 연습용 문제 만들기 숙제
10952번 - A+B - 5
Oracle 2️⃣
2480번 - 주사위 세개
Oracle Day1️⃣
Tensorflow
Big Data
2525번 - 오븐 시계
10871번 - X보다 작은 수
2439번 - 별 찍기 - 2
2438번 - 별 찍기 - 1
11022번 - A+B - 8
11021번 - A+B - 7
2742번 - 기찍 N
2741번 - N 찍기
15552번 - 빠른 A+B
8393번 - 합
10950번 - A+B - 3
9️⃣ 2739번 - 구구단
2884번 - 알람 시계
14681번 - 사분면 고르기
⛏크롤링(Crawling)
2753번 - 윤년
Django 복습 4️⃣
Django 복습 3️⃣
💯 9498번 - 시험 성적
1330번 - 두 수 비교하기
✖ 2588번 - 곱셈
➗ 10430번 - 나머지
Django 복습 2️⃣
Django 복습 1
MySQL 복습!
⁉10926번 - ??!
🆎1008번 - A/B
👩🦲 18108번 - 1998년생인 내가 태국에서는 2541년생?!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
🎈✨경 축✨🎈
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
선형 자료구조(1일차에 이어서)
🆎10998번 - A×B
🆎1001번 - A-B
🆎1000번 - A+B
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
🐶10172번 - 개
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
🐱10171번 - 고양이
[해당 포스트는 유튜버 나동빈님의 영상을 참고했습니다.]
❤10718번 - We love kriii
🖐2557번 - Hello World
Today I Learned(TIL)📌 (2021.12.31)
Today I Learned(TIL)📌 (2021.12.30)
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[noitce!!] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!