Computer Science/알고리즘

[코드트리 챌린지] 정렬

hyunjin 2023. 9. 8. 19:20

실력진단

2차원 배열 문제를 시간내에 풀지 못함.

 

 

학습내용

정렬

  • 오름내림차순 정렬
    • lst.sort(), lst.sort(reverse=True), arr=sorted(lst)
  • 문자열 정렬
    • list로 먼저 변환
    • "".join()함수 이용
  • 단어 정렬
lst=[]
for _ in range(n):
    lst.append(input())

#list comprehension 활용
lst=[input() for _ in range(n)]

객체

  • tuple unpacking
student1=(90,80,100)
kor1,eng1,math1=student1
print(~~~)
  • class
#클래스 선언
class info:
    def __init__(self,code,point,time): #생성자
        self.code=code
        self.point=point
        self.time=time
#변수선언&입력
code,point,time=input().split()

#객체생성-type맞춰놓기!!
n1=info(code,point,**int(time)**)

#출력
print("secret code :",n1.code)
print("meeting point :",n1.point)
print("time :",n1.time)

class NextLevel:
    def __init__(self, user_id="", user_level=0):
        self.user_id=user_id
        self.user_level=user_level

user1=NextLevel()
user1.user_id="codetree"
user1.user_level=10

user2_id,u2_level=tuple(input().split())
user2=NextLevel(user2_id,int(u2_level))

print("user",user1.user_id,"lv",user1.user_level)
print("user",user2.user_id,"lv",user2.user_level)
  • 객체를 원소로 하는 리스트
#list comprehension
students = [
    tuple(map(int, input().split()))
    for _ in range(5)
]
student3 = students[2] # 세 번째 학생 정보

class Agent:
    def __init__(self,name,score):
        self.name=name
        self.score=score

agents=[]
for _ in range(5):
    name,score=tuple(input().split())
    agents.append(Agent(name,int(score)))

#인덱스를 활용하여 최솟값 찾기
min_idx=0
for i in range(1,5):
    if agents[min_idx].score>agents[i].score:
        min_idx=i
print(agents[min_idx].name, agents[min_idx].score)