_

Always be tactful

전체 글 93

[DS] 스택, 큐, 덱

자료구조의 일종으로, 각기 다른 방식으로 데이터를 저장하고 관리한다. 스택[정의] 데이터를 차곡차곡 쌓는다는 의미인 스택은 top을 통해서만 접근이 가능하기 때문에 push와 pop 모두 top에서 이루어진다. 마지막에 추가된 데이터가 가장 먼저 제거되는 후입선출(後入先出) 구조를 따른다. 물론 프로그래밍 언어와 구현에 따라 서로 다른 자료형을 혼합하는 경우도 있을 수 있지만, 일반적으로는 동일한 자료형으로 구성된다. 그래야 안정성이 보장되기 때문이다. [장점] 스택은 리스트로 구현되어 있다. 각 요소가 배열의 끝에 추가되며, 필요할 때에만 메모리가 할당되어 메모리 사용이 효율적이다. 재귀 함수 호출 시에도 스택 특유의 후입선출 구조가 자연스러운 관리를 유도한다.▲ 구현이 간단하고 메모리 사용이 효율적이..

개인 학습/CS 2024.11.26

[Python] 백준 11718번: EOFError가 발생하지 않는다고?

sys.stdin.readline()은 빈 문자열을 반환한다!import syswhile True: try: userInput = sys.stdin.readline().strip() print(userInput) except: break EOFError(End of File)는 파일의 끝, 즉 입력의 끝을 의미한다. input()은 파일의 끝에서 EOFError를 발생시키지만, sys.stdin.readline()은 빈 문자열을 반환하므로 EOFError를 발생시키지 않는다. 따라서 출력 초과로 인한 오답 처리가 되는 것이다.while True: try: print(input()) except: break 물론 이렇게 간..

Inactive Board 2024.11.23

[Python] 시간 복잡도: 문자열 결합 연산 쓰지 마!

시간 복잡도 프로그래밍 언어에서 시간복잡도란 입력의 크기(N)에 따라 알고리즘이 얼마나 많은 "시간"을 소모하는지를 나타내는 척도이다. 표기법은 다양하나, 일반적으로는 O(1), O(n), O(log n), O(n^2) 등의 표기법을 사용한다.실제 코드 시간 복잡도 분석import sysN = int(sys.stdin.readline())result = ""for i in range(N // 4): result += "long "result += "int"print(result) 백준 25314번 문항을 풀며 실제 내가 제출한 코드로, 입력값 N에 따라 "long "을 N // 4번 반복해서 결과 문자열에 추가한 후, 마지막에 "int"를 붙여서 출력하는 프로그램이다. 다음은 코드를 쪼개어 각 코드..