Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 44 additions & 0 deletions 4week/10814-나이순 정렬.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
import sys
input = sys.stdin.readline
N = int(input())

# 2. member를 리스트로 입력받기
# N번 반복하여 회원 정보를 입력받음
# 각 줄은 공백으로 구분되므로, split()으로 나눔
# 각 회원 정보는 [나이(str), 이름(str)] 형태로 리스트에 저장
members = [list(map(str, input().split())) for _ in range(N)]

# 3. 정렬하기
# sort() 메서드를 사용하여 members 리스트를 정렬
# key=lambda x: int(x[0])로 정렬 기준을 첫 번째 값(나이)으로 설정
# x[0]은 문자열로 저장되므로 정수(int)로 변환하여 비교
# Python의 sort()는 안정 정렬이므로, 나이가 같으면 입력 순서가 유지됨
members.sort(key=lambda x: int(x[0]))

# 4. 원하는 형식으로 출력하기
# 정렬된 members 리스트에서 각 회원 정보를 출력
# *member를 사용하여 리스트 요소를 공백으로 구분하여 출력
for member in members:
print(*member)

"""
num = int(input())
mem_list = []
for i in range(num):
mem = input().split()
mem[0] = int(mem[0]) # 첫 번째 값을 정수로 변환
mem_list.append((mem, i)) # 데이터를 튜플로 저장: (데이터, 입력 순서)

# 정렬 구현
for i in range(len(mem_list)):
for j in range(i + 1, len(mem_list)):
if mem_list[i][0][0] > mem_list[j][0][0]: # 숫자가 더 큰 경우
mem_list[i], mem_list[j] = mem_list[j], mem_list[i]
elif mem_list[i][0][0] == mem_list[j][0][0]: # 숫자가 같은 경우
if mem_list[i][1] > mem_list[j][1]: # 입력 순서를 비교
mem_list[i], mem_list[j] = mem_list[j], mem_list[i]

# 결과 출력
for item, _ in mem_list:
print(item)
"""
7 changes: 7 additions & 0 deletions 4week/10870-피보나치 수5.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
num = int(input())

pivolist=[0,1]
for i in range(2,num+1):
pivolist.append(pivolist[i-2]+pivolist[i-1])

print(pivolist[num])
29 changes: 29 additions & 0 deletions 4week/10989-수 정렬하기3.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
import sys
input = sys.stdin.readline

#계수정렬 활용
n = int(input())
arr = [0] * (10000 + 1) # 입력값이 10000개까지 주어지니 10000 + 1개의 리스트 선언

#각 입력값에 해당하는 인덱스의 값 증가
for _ in range(n):
arr[int(input())] += 1

#arr에 기록된 정보 확인
for i in range(len(arr)):
if arr[i] != 0: #0이 아닌 데이터, 즉 입력받은 데이터들을 출력
for _ in range(arr[i]):
print(i)


''' 메모리 초과
cnt = int(input())
list=[]
for i in range(cnt):
num = int(input())
list.append(num)

sorted_list = sorted(list)
for j in sorted_list:
print(j)
'''
11 changes: 11 additions & 0 deletions 4week/1427-소트인사이드.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
n = int(input())

li = []
for i in str(n):
li.append(int(i))
# li = list(map(int,str(n)))

li.sort(reverse=True) # 내림차순

for i in li:
print(i,end='')
16 changes: 16 additions & 0 deletions 4week/17478-재귀함수가 뭔가요.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
def chatbot(num, cnt):
print("____" * cnt + '"재귀함수가 뭔가요?"')

if cnt == num:
print("____" * cnt + '"재귀함수는 자기 자신을 호출하는 함수라네"')
else:
print("____" * cnt + '"잘 들어보게. 옛날옛날 한 산 꼭대기에 이세상 모든 지식을 통달한 선인이 있었어.')
print("____" * cnt + "마을 사람들은 모두 그 선인에게 수많은 질문을 했고, 모두 지혜롭게 대답해 주었지.")
print("____" * cnt + '그의 답은 대부분 옳았다고 하네. 그런데 어느 날, 그 선인에게 한 선비가 찾아와서 물었어."')
chatbot(num, cnt + 1)
print("____" * cnt + "라고 답변하였지.")


num = int(input())
print("어느 한 컴퓨터공학과 학생이 유명한 교수님을 찾아가 물었다.")
chatbot(num, 0)
12 changes: 12 additions & 0 deletions 4week/2750-수 정렬하기.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
cnt = int(input())
list=[]
for i in range(cnt):
num = int(input())
list.append(num)

list.sort() #sort는 리스트를 제자리에서 정렬한다. 따라서 정렬 후 리스트를 직접 출력
print(list) #바로 print(list.sort()) 하면 안되는 이유는 list.sort()는 리스트를 정렬하지만, 반환값이 none이기 때문
#sorted_list = sorted(list)
#print(sorted_list)


15 changes: 15 additions & 0 deletions 4week/2947-나무조각.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
li = list(map(int, input().split())) #31245
for i in range(5):
for j in range(4):
# 현재 요소(li[j])가 다음 요소(li[j+1])보다 크다면 자리 교환
if li[j] > li[j + 1]: #3>1
# 두 요소를 스왑 (교환)하는 과정
# li[j] 값을 임시 변수 t에 저장
t = li[j] #t=3
# li[j]에 li[j+1] 값을 대입
li[j] = li[j + 1] #1저장(맨앞에)
# li[j+1]에 임시 변수 t 값을 대입 (교환 완료)
li[j + 1] = t #두번째로 3저장(t)

#결합된 문자열을 출력.
print(" ".join(map(str, li)))