> 알고리즘 문제 풀이/BOJ51 19/09- 주로 런타임에러가 발생하는 경우 백준에서 런타임 에러가 발생하는 문제가 생겨서 이유가 뭔지 알려고 찾아봤더니 바로 나왔다. 넘나 잘 정리되어 있다!! (다만, C/C++ 관련 내용도 있다) 런타임 에러 그 이유!! 1. 배열에 할당된 크기를 넘어서 접근했을 때 2. 전역 배열의 크기가 메모리 제한을 초과할 때 3. 지역 배열의 크기가 스택 크기 제한을 넘어갈 때 4. 0으로 나눌 때 5. 라이브러리에서 예외를 발생시켰을 때 6. 재귀 호출이 너무 깊어질 때 7. 이미 해제된 메모리를 또 참조할 때 8. 프로그램(main 함수)이 0이 아닌 수를 반환했을 때 * 구체적인 사례 :: - switch 사용시 case 내부에 break 안 넣었을 때 - 출처 :https://www.acmicpc.net/board/view/22980 2020. 10. 6. 10930-SHA-256 (python) 해시 테이블을 공부하고 푸니 이해가 잘 되었다! * SHA (Secure Hash Algorithm: 안전한 해시 알고리즘) : 대표적인 해시 함수 중 하나로, 어떤 데이터도 고정된 길이의 값으로 반환해준다 import hashlib s = input() hash_object = hashlib.sha256() hash_object.update(s.encode()) result = hash_object.hexdigest() print(result) 2020. 10. 6. 5397-키로거 (python) 1. 내가 작성한 코드 (실패: 시간초과) - 효율성을 높이고자 pop(0) 대신, pop() 을 사용하려고 했으나 이것도 시간초과로 실패하였다 - 그 이유는 아래 핵심 로직에 있듯이, 최대 L의 길이가 1,000,000개인 것이 문제가 된다 - 시간 복잡도를 계산하면, 아래 단순 구현 코드에선 최악의 경우 O(n^2)이 나온다 - 시간제한이 1초, 컴퓨터가 1초당 대략 1억 번의 연산한다는 걸 감안할 때, 시간제한에 당연히 걸릴 것이다. - 이에 따라 다른 적절한 알고리즘을 고려해야 하고, 결과적으로 스택을 사용하는 방법을 선택하기로 한다 그리고 스택을 사용한 풀이는 두 번째 코드에 기록해두었다 tc = int(input()) for _ in range(tc): data = input() l = len.. 2020. 10. 3. 1966-프린트 큐 (python) 1. 큐에서 첫 번째 원소를 뽑는다 2. 나머지 원소들 중 우선순위가 더 큰 게 있다면 큐 목록의 뒤로 보낸다 3. 그렇지 않으면 출력한다 - count +1 한다 - 현재 문서가 찾고자 하는 문서의 인덱스와 맞는지 확인한다 (맞다면 break하여 반복문을 빠져나온다) 4. 1-3번의 과정을 반복한다 tc = int(input()) answer = [] for c in range(tc): count = 0 n, m = list(map(int, (input().split()))) priorities = list(enumerate(map(int, (input().split())))) while True: cur = priorities.pop(0) if any(cur[1] < p[1] for p in prio.. 2020. 10. 3. 이전 1 ··· 9 10 11 12 13 다음