Algorithm/백준(BOJ)111 [ 파이썬(python) ] 백준 18110 - solved.ac 📍 백준 18110 - solved.ac 백준 18110 - solved.ac 💡 나의 풀이 단순 round 함수로만 풀었더니 오답판정이 나온 문제였다. 난이도가 딱히 어렵지 않은데 왜 실버 4인가 했더니 부동소수점을 이해하고 있어야만 문제를 풀 수 있어서였다. 절사평균과 반올림에 관해 작성한 이전글을 보면 조금이나마 이해 할 수 있다. 의견이 없는 경우와 있는 경우로 나누어 푼다. 없는 경우는 print(0)을 출력한다. 있는 경우는 절사평균 -> 정렬 -> 슬라이싱의 과정을 거친다. 이때, round 함수는 사사오입 반올림이 적용되게 만든다. # 나의 코드 import sys input = sys.stdin.readline def round2(num): return int(num) + (1 if nu.. 2021. 7. 13. [ 파이썬(python) ] 백준 17952 - 과제는 끝나지 않아! 📍 백준 17952 - 과제는 끝나지 않아! 문제: 백준 17952 - 과제는 끝나지 않아! 💡 나의 풀이 flag[0]이 0인 경우와 1인 경우로 나누어 작성했다. flag[0]가 0일 때 stack이 존재하면 맨 뒤에부터 시간을 확인하여 0인 경우에는 score에 추가하고 0이 아닌경우에는 시간이 흐르게 -= 1을 해준다. flag[0]가 1이면, 과제를 받자마자 시작하기 때문에 -1을 해준 상태로 넣는다. 그런데 이런 방법으로 풀지 않더라도 다른 코드를 보니까 코드를 반절로 줄일 수 있었다. 바로 시간과 점수 변수를 각각 선언하고 계산하는 방식이다. flag[0]이 1인 경우만 고려한다 만약, flag[0]이 1이라면 score와 time에 각각 해당 값을 넣는다. time에 값이 남으면 time .. 2021. 7. 12. [ 파이썬(python) ] 백준 20001 - 고무오리 디버깅 📍 백준 20001 - 고무오리 디버깅 문제: 백준 20001 - 고무오리 디버깅 💡 나의 풀이 고무오리를 이용해서 푸는 귀여운 문제다. 그런데 입력이 숫자가 아닌 문자여서 입력 횟수가 많으면 어쩌지(?)라는 생각을 잠깐 했으나 python으로 실행시간이 72m/s인것으로 보아 많지 않은 것 같다.(문제에 입력 범위는 따로 명시되어있지 않았다.) 주의할 점은 stack이 없는 경우에 고무오리가 들어오면 두 문제를 추가해야 한다. stack = [] while True: s = input() if s == '문제': stack.append(1) elif s == '고무오리': if not stack: stack.append(1) stack.append(1) else: stack.pop() elif s ==.. 2021. 7. 12. [ 파이썬(python) ] 백준 2493 - 탑 📍 백준 2493 - 탑 문제: 백준 2493 - 탑 💡 나의 풀이 스택을 활용하면 되는 문제인데 머릿속으로는 단계별로 생각이 잘 됐는데 코드로 구현하려니까 쉽지 않았다. 우선 범위가 500,000이기 때문에 이중 반복문을 사용하면 최대 250,000,000,000까지임을 명심해야 한다. 여기서 의문점은 성공코드와 실패 코드의 시간 복잡도의 차이는 (index, slicing)의 차이인것 같은데 왜 시간초과가 나는지 잘 모르겠다.(고수님들 댓글부탁드립니다 :)) --- [ 21. 7. 13. ] 백준에 시간초과 관련하여 질문을 남겼는데 @djm03178님께서 좋은 답변을 해주셨다. 결론적으로 시간복잡도는 다음과 같다. 1. 성공코드(O(N)): 각 원소가 스택에 들어가고 나오는 연산이 한 번씩만 수행된다.. 2021. 7. 9. [ 파이썬(python) ] 백준 2504 - 괄호의 값 📍 백준 2504 - 괄호의 값 문제: 백준 2504 - 괄호의 값 💡 나의 풀이 stack에 값을 넣고 순서를 잘 알았더라면 금방 풀 수 있을 텐데, 나한테는 어려웠던 문제였다. 전체적인 흐름은 다음과 같다. 괄호열이 올바른지 올바르지 않은지 검사한다.(def is_checked) 괄호열이 올바르면 def calc_value 함수로 이동하고 괄호열이 올바르지 않다면 print(0)을 출력한다. 이어서 세부적인 흐름을 살펴보자. is_check()는 단순히 올바른지 아닌지만 확인하면 되기때문에 큰 어려움은 없었으나, calc_value() 함수에서 상당히 애를 먹었다. 어떻게 해결했는지 차근차근 살펴보자. 여는 괄호((, [)면 stack에 집어넣는다. 닫는 괄호가 나올때 )의 경우와 ]의 경우를 나눈다.. 2021. 7. 7. 이전 1 2 3 4 5 ··· 23 다음