본문 바로가기
알고리즘/백준 solved.ac PS

[백준][solved.ac][Bronze 3][Python] 10419번 : 지각

by 빛밤하늘 2021. 7. 3.
반응형

밑의 링크는 백준에서의 문제 링크입니다.

 

10419번: 지각

창영이가 궁금한 경우의 수 T(1 ≤ T ≤ 100)가 첫 번째 줄에 주어지고, 이어서 T 개의 줄에 수업시간 d(1 ≤ d ≤ 10,000, d는 정수)가 차례대로 주어진다.

www.acmicpc.net

 

 

 

 

 

 

 

 

파이썬 코드와 결과입니다.

# readline을 사용하기 위해 import합니다.
from sys import stdin


# 첫 번째 줄에 창영이가 궁금한 경우의 수 T를 입력합니다.
# 1 <= T <= 100
# 정수형으로 변환합니다.
T = int(stdin.readline())

# 경우의 수 T만큼 반복합니다.
for test_case_idx in range(T):
    # 수업시간 d를 입력합니다.
    # 1 <= d <= 10,000인 정수입니다.
    # 정수형으로 변환합니다.
    d = int(stdin.readline())
    # 교수님이 지각할 수 있는 최대 시간 저장할 변수를 선언합니다.
    # 0으로 초기화합니다.
    t = 0

    # 지각할 수 있는 최대 시간을 구할 때까지 반복합니다.
    while True:
        # 교수님이 지각한 시간과 수업할 수 있는 시간의 합을 저장하는 변수를 선언합니다.
        late_and_lesson = t ** 2 + t

        # late_and_lesson이 수업시간보다 크다면
        if late_and_lesson > d:
            # 최대 t - 1만큼 지각할 수 있으므로 t - 1을 출력합니다.
            print(t - 1)
            # 지각할 수 있는 최대 시간을 구했으므로 반복문을 탈출합니다.
            break
        # late_and_lesson이 수업시간보다 작거나 같다면
        else:
            # t에 1을 더해줍니다.
            t += 1

결과

 

코드를 짤 때 위의 코드보다 뭔가 더 간단히 풀 수 있는 문제인 것 같은데 방법이 떠오르지 않았습니다.

심지어 맞았습니다 결과를 보고 나서 다른 사람들의 파이썬 결과와 비교해보니

실행 시간도 느린 편이었습니다.

 

다른 고수분들의 코드도 공부해봐야겠습니다.

 

 

 

※ 궁금한 부분, 이상한 점 및 오타는 댓글에 부탁드립니다.

※ 더 효율적이고 빠른 정답을 환영합니다.

반응형

댓글