본문 바로가기

CS/알고리즘23

백준 11718 - input(), sys.stdin.readline(), sys.stdin.readlines() 백준 11718 그대로 출력하기 문제를 통해 파이썬의 입출력에 대해서 살짝 알아보았음 아래 풀이로 성공 while True: try: print(input()) except: break() 하지만 조금 더 빠른 입출력을 위해 sys.stdin을 사용할 필요가 있다는 것을 알게 됨. input()은 입력을 받고 문자열 변환 개행 제거 등의 작업이 들어가지만, sys.stdin.readline()이나 readlines()는 그렇지 않음. 따라서 sys를 사용하면 .rstrip() 등으로 \n 제거해야 하지만 속도에서나 메모리 사용에서나 더 효율적. 또한 입력값이 없을 때 input()은 EOFError를 발생시키지만, sys.stdin.readline()은 빈 문자열을 반환 sys.stdin에는 readli.. 2023. 9. 20.
백준 10951, 10952 (python) 오랜만에 알고리즘을 푸는데 입출력 방식을 다 까먹었다; 임의의 수를 입력 받을 때는 try, except로 예외처리를 하여 스무스하게 받아주는 테크닉을 사용 (티스토리 코드 블럭의 인덴테이션은,,, 휴) while True: try: a, b = map(int, input().split()) print(a+b) except: break 10952번처럼 종료 조건(입력이 0 0 인 경우)이 명확한 경우에는 해당 조건을 사용 while True: a, b = map(int, input().split()) if (a==0) and (b==0): print(a+b) else: break 2023. 9. 19.
[이코테] 다이나믹 프로그래밍 - 금광 다이나믹 프로그래밍은... 모르겠다... 오늘도 못 풀었다 1-1. 풀이 도중 생각 1) 입력을 2차원으로 변환해주는 코드를 익혀야겠다 2) maz(오른쪽 아래, 오른쪽, 오른쪽 위)로 하면 될 것 같은데 2. 책 풀이 for tc in range(int(input())): # 금광 정보 입력 n, m = map(int, input().split()) array = list(map(int, input().split())) # 다이나믹 프로그래밍을 위한 2차원 dp 테이블 초기화 dp =[] index = 0 for i in range(n): dp.append(array[index:index + m]) index += m # 다이나믹 프로그래밍 진행 for j in range(1, m): for i in .. 2023. 2. 25.
[이코테] 다이나믹 프로그래밍 - 바닥 공사 오랜만에 아예 감을 못 잡겠는 문제였다 1-1. 풀이 도중 생각 1) 주어진 조건이 무조건 2xN인 모양이라 그나마 생각이라도 좀 했는데, 아니었으면 아예 접근도 못했을듯 2) N이 짝수라면 2x1 블록이 없어도 괜찮고 N이 홀수라면 2x1 블록은 무조건 하나 있어야 한다 3) 그 뭐냐 sliding window처럼 슈슉 지나가면서 만들어내는 규칙 같은게 있을 것 같은데 모르겠다 4) 결과를 769,769로 나눈 나머지를 출력하라고 하는데 특이하다 2. 책 풀이 아니 이거 점화식 세우는거 어떻게 생각하는거임????? i-1번째, i-2번째 이런 패턴으로 생각하는 것 같은데 n = int(input()) d = [0] * 1001 # 다이나믹 프로그래밍 진행 (바텀업) d[1] = 1 d[2] = 3 fo.. 2023. 2. 23.