본문 바로가기

코딩테스트43

[python 구름] 0커플 📜 접근 방법 짝수인 n이 주어지며, n만큼 숫자가 들어오는데 짝이 아닐 경우 그 숫자를 더해야한다. 짝일 경우는 두 수를 더했을 시 0이 되어야한다. 우선순위 큐를 사용했고, 두 수를 더했을 때 0이면 결국 -k 와 k를 더했을 경우 0이 되기에 2개의 힙을 사용했다. (양수 넣는 힙과 음수 넣는 힙) 입력받은 숫자들을 2개의 힙중 하나의 힙에 구분하여 넣는다. 두개의 힙중 하나라도 비어지면 반복문 종료한다. 짝이 아닐 경우 둘중 절대값이 작은 수를 res에 넣는다. (res는 짝이 없는 수들의 리스트) / 반복 반복문이 종료되면 힙에 남는 값들을 전부 res에 넣어준다. res에 들어간 값들의 합을 출력 ✅ 정답 코드 from heapq import heappop, heappush import sys.. 2023. 5. 10.
[python 구름] 대소문자 바꾸기 📜 접근 방법 아스키 코드를 이용하여 풀었다. ✅ 정답 코드 user_input = int(input()) res = '' s = input() i = 0 while i = 97 and asci 2023. 5. 6.
[python] 코딩테스트시 입력처리시 input 함수를 사용하지 않는 이유 코딩테스트를 파이썬으로 응시하면, 처음엔 input함수를 사용하는데 input 함수를 사용하면 Timeout 이 발생하는 경우가 있다. python의 기본 입출력 함수인 input()에 대해 알아보면, input() 함수의 특징 1. 입력 받은 문자열을 문자 단위로 읽는다. 2. 개행 문자를 삭제한다. 3. 문자를 문자열로 변환하여 반환한다. input()함수는 입력 받은 문자열을 문자 단위로 하나씩 읽어들이기 때문에 느리다. 그렇기 때문에 sys.stdin.readline 함수를 사용한다. sys.stdin.readline 함수는 사용자의 입력을 받는 버퍼를 만든 뒤, 그 버퍼에서 입력을 다시 읽어들인다. 또한 이는 개행 문자를 포함해 문자열로 변수에 저장되기 때문에 rstrip 함수를 사용하여 개행 .. 2023. 5. 6.
[python 백준 2075] N번째 큰수 📜 접근 방법 처음에는 heap에 내림차순으로 넣고 n만큼 빼면 n번째 큰수가 나오는 것을 생각하여 코드를 짰다. 하지만 메모리 오류 발생했다. heap안에 원소의 갯수를 제한시켜서 갯수가 n개 이상이면 현재 넣어야할 원소와 heap안에 있는 제일 작은 수를 비교한다. 현재 넣을 원소가 크다면 heap[0](가장 작은 수)에 있는 수를 pop하고 집어넣는다. 아닐경우 넘어간다. ❌ 실패 코드 메모리 오류 from heapq import heappush, heappop import sys input = sys.stdin.readline n = int(input()) heap = [] for i in range(n): tmp = list(map(int, input().split())) for num in t.. 2023. 5. 2.