https://www.acmicpc.net/problem/1309 풀면서 어려웠던 점1. DP 테이블을 만들면서 사자를 한마리도 배치하지 않는 경우를 생각해내기 힘들었다.2. 메모리 초과 DP 테이블에서 한마리도 배치않는 경우 0, 1에 배치할 경우 1, 2에 배치할 경우 2로 정한 후에 풀게되면 수월하게 풀 수 있었다.그리고 int 형은 4Byte라 문제가 없어보이는데 왜 메모리 초과가 발생하는지에 대해 의문이다. 혹시라도 지나가다가 명확히 아시는 분이 있으면 댓글을 부탁드립니다. ㅜ.ㅜ N이 100,000이 최대이니까 300,000 개의 int가 있고 이는 1,200,000 byte이고 1.2M 정도 밖에 안되지만 무슨 이유일까... 아무튼 dp를 계산해줄 때 9901을 나눈 나머지를 사용하면 된다..
문제를 풀었지만 정말 복잡하게 풀었다... 그리고 메모리 초과가 나서 코드를 살펴보니 del의 경우 O(N)이기 떄문에 for 문과 함께 전체적으로 O(N^2) 이기 때문에 효율적이지 못한 코드이다. 요새 코딩테스트를 보면서 메모리 효율적으로 사용해야하는 코드가 필요하다는 것을 절실히 느낀다.import syss = list(sys.stdin.readline())n = int(sys.stdin.readline())c_idx = len(s)for _ in range(n): input_ = list(map(str, sys.stdin.readline().split())) if input_[0] == "L": # 왼쪽 if c_idx == 0: # 커서가 맨 왼쪽에 있다면 ..
알고리즘을 풀다보면 sort를 사용하는 순간이 있다. 이때 단순히 오름차순 내림차순만 하다가 막히는 부분이 있었다.아래와 같이 on, oon인 경우 앞에 글자는 o로 동일하기 때문에 그다음 정렬 순서는 어떻게 하는지 의문이 들었다.aekjoonbaekjoonekjoonjoonkjoonnonoon ChatGPT한테 물어본 결과 기본적으로 사전식 정렬을 따르고 첫글자를 비교하고 다음 글자를 비교한다고 한다. o가 같으니 그 다음에 n과 o를 비교하는 것이다. 그 외에 다음과 같은 규칙이 있다. 1) 대문자가 항상 소문자보다 먼저 온다.2) 숫자는 항상 문자 앞에 온다.기본적이지만 놓질 수 있는 부분이므로 암기하자.
파이썬으로 데이터를 처리하면 C에 비해 많이 느리다고 한다. C는 컴퓨터와 가장 가까운 언어이기 때문에 빠르다. 즉 컴퓨터에게 친숙한 언어를 사용한다고 생각하면된다. 모든지 단점을파이썬으로 데이터를 처리하면 C에 비해 많이 느리다고 한다. C는 컴퓨터와 가장 가까운 언어이기 때문에 빠르다. 즉 컴퓨터에게 친숙한 언어를 사용한다고 생각하면된다. 모든지 단점이 있다면 이를 보완하는 방법을 마련하듯이 파이썬의 속도를 보완하기 위해 numpy 라이브러리를 사용한다.어떤 차이점이 있어서 속도가 다른건지 간단하게 Python과 Numpy에서 리스트 구조의 차이점을 살펴보았다.위의 그림에서 살펴보면 Python은 리스트에 메모리 주소를 저장한다. 즉 다이렉트로 데이터가 있는 주소를 방문하지 않고 중간의 업체를 관리만..
- Total
- Today
- Yesterday
- 시간초과
- 프로그래머스
- 카카오페이
- synflooding
- 보안기사
- springboot
- 파이썬
- LangChain
- 보안
- 다이나믹프로그래밍
- java
- 백준
- 정보보안기사
- 딥러닝
- t검정
- 코딩테스트
- Python
- FastAPI
- 리눅스
- Ai
- 카카오페이면접후기
- llm
- 우선순위큐
- 정보보안
- 그리디
- lightsail
- 분산시스템
- linux
- 자료구조
- t-test
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |