A ship in harbor is safe, but that is not what ships are built for.

개발일지/AI 캠프

내일배움캠프 AI - 5일차 TIL, 2022.09.02

플리피나리 2022. 9. 2. 19:50
반응형

스파르타 코딩클럽 내일배움캠프 AI 웹개발자양성과정 3회차

2022.09.02. 5일차 - TIL

 

 

1. 백준알고리즘(using python)

오늘은 조건문 단계를 풀었다. 마지막 2문제가 헷갈렸으므로 회고해보려 한다.

import sys

current_time = list(map(int, input().split()))
cooking_time = int(input())

if current_time[0] < 0 or current_time[0] > 23 or current_time[1] < 0 or current_time[1] > 59:
    print("입력 오류")
    sys.exit(0)

if cooking_time < 0 or cooking_time > 1000:
    print("입력 오류")
    sys.exit(0)

timer = [0, 0]
hr = cooking_time // 60 #시 변환
m = cooking_time - hr*60 #분 변환

timer[0] = current_time[0]+hr
timer[1] = current_time[1]+m

if timer[1] >= 60:  #분이 60보다 크거나 같은 경우
    timer[0] += 1
    timer[1] -= 60
    if timer[0] >= 24:
        timer[0] = timer[0] - 24
else:  #분이 60보다 작은 경우
    if timer[0] >= 24:
        timer[0] = timer[0] - 24

print(timer[0], timer[1])

- sys.exit(0) : 파이썬에서 return 0과 같은 의미

- Missing whitespace around operator(E225), (E226) : 연산자 주위에 공백이 누락되었음을 의미 -> 결과에 지장은 없다

- PEP8 E501 : line too long error : 파이썬 프로그램에 대해 80열 규칙 이하로 유지할 것을 제안해 긴 문자열은 분리해서 저장

import sys

dice = list(map(int, input().split()))
for num in dice:
    if num <= 0 or num > 6:
        print("입력 오류")
        sys.exit(0)

total = 0
x = []  #처음 등장한 값인지 판별하는 리스트
new_a = []  #중복된 원소만 넣는 리스트

for i in dice:
    if i not in x:  #처음 등장한 원소
        x.append(i)
    else:
        if i not in new_a:  #이미 중복 원소로 판정된 경우 제외
            new_a.append(i)

if len(x) == 3:  #모두 다를 경우
    total = max(x)*100
elif len(x) == 2: #2개 중복
    total = 1000+100*new_a[0]
else:  #3개 중복
    total = 10000+1000*new_a[0]

print(total)

- max() : 리스트에서 가장 큰 요소를 찾아내 리턴(반대로 min도 존재)

 

 

2. 후기

알고리즘 문제 풀이로 알게 된 것은 내가 코드를 좀 복잡하게 짠다는 것이다. 이러한 문제들을 만났을 때 나는 먼저 이 문제를 사람이 어떻게 풀지를 먼저 생각해 이 사고의 순서가 코드에 그대로 담겨져 버리는 것 같다. 처음에는 별거 아니라고 생각했는데 최근 개발을 잘 하시는 분들이 코드를 효율적으로 짜는 법, 더 간결하게 짜는 법을 공부하고 있으시다는 것을 알기 때문에 문제 풀이 과정을 곰곰이 생각해보고 마지막에 해당 코드를 어떻게 간결화시킬 수 있는지 생각해보는 시간을 가져야겠다. 그리고 오늘 느낀점은 나는 역시 알고리즘 문제풀이보다 실전 개발을 더 재미있어 한다는 것이다.(물론 팀플은 여전히 힘들지만...ㅠㅜ 그래도 뭔가 복닥복닥해서 '우리가 뭔가 하고 있어!' 라는 느낌이랄까...)

반응형