CODING TEST/Code Tree

[코드트리 챌린지] 8주차 - 마무리와 시작(코드네임, 사는 지역, 비오는 날)

더라 2023. 10. 30. 23:23
728x90

실력진단

8주차: 654 → 504

7주차에 비해 1문제를 못 풀었다. 그만큼 순간 점수가 높아졌다고 완전히 그 파트에 대해 완벽해졌다고 볼 수 없다.😂

대신 지난번에 높아졌던 점수를 보면서 다시 그 점수에 도달하고 싶은 욕심에 더 열심히 공부할 수 있을 것 같다.

 

길면 길고, 짧으면 짧던 8주차의 마무리에 들어서고 있다. 이번주는 dfs에 공부할 계획이었지만 실행하지 못 했다.😥

그래도 객체 파트를 마무리 했고, 다른 문제들을 조금 풀었다. 코드트리 챌린지는 이번 8주차로 마무리된다. 하지만 앞으로도 이어서 할 공부에서는 dfs공부를 마무리할 계획이다.

코드트리 챌린지를 하면서 2차원 배열에 대해 이해하고, 시뮬레이션에 대해 공부를 했다. 목표치에 비해 완수하지 못 해서 아쉽다. 하지만 계속해서 공부할 수록 실력이 증가한다는 것을 코드트리 챌린지를 통해 경험해 뜻깊은 시간이었다. 코드트리 챌린지를 통해 처음 코드트리를 접하게되었었다. 이번 챌린지가 마무리되어도 앞으로 코드트리를 통해 공부를 하게될 것 같다. 앞으로도 꾸준히 조금씩 나아가고자 한다.

 

부족한 점: 시뮬레이션 - dx, dy

dx, dy에 대해서는 문제를 빠르게 이해하고 코드를 실수 없이 작성하는 연습이 필요할 것 같다.

dfs에 대해서는 공부가 진행중이다.

 


학습내용

코드네임

 

[코드트리] 코드네임

 

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_score = 1000
idx = -1
for i in range(5):
    if min_score > agents[i].score:
        min_score = agents[i].score
        idx = i
print(agents[idx].name, min_score)

요원들의 객체 정보를 배열에 담아 하나씩 비교하며 제일 점수가 적은 요원의 인덱스를 찾는다.

이후 인덱스 번호를 사용해 배열에서 점수가 제일 낮은 요원의 정보를 출력한다.

 


 

사는 지역

 

[코드트리] 사는 지역

 

class User:
    def __init__(self, name, number, area):
        self.name = name
        self.number = number
        self.area = area

n = int(input())

users = []
for _ in range(n):
    name, num, a = tuple(input().split())
    users.append(User(name, num, a))

users.sort(key=lambda user:user.name)

print("name", users[n-1].name)
print("addr", users[n-1].number)
print("city", users[n-1].area)

sort()를 사용해서 배열을 이름 기준으로 정렬했다. sort()를 사용하면 올림차순으로 정렬이 되기때문에 배열의 마지막 객체 정보를 출력하면된다.

 

비 오는 날

 

[코드트리] 비오는 날

 

class Weather:
    def __init__(self, date, week, name):
        self.date = date
        self.week = week
        self.name = name

num = int(input())
ans = Weather("9999-99-99", "", "")
#arr = []
for _ in range(num):
    d, w, n = tuple(input().split())
    now = Weather(d, w, n)
    if n == "Rain":
        if ans.date >= now.date:
            ans = now

#arr.sort(key = lambda weather:weather.date)

print(ans.date, ans.week, ans.name)

sort()를 사용하지 않고 반복문과 if문을 통해 정보를 얻었다. 비가 오는 날중 날짜가 최신인 정보를 출력한다.

728x90