질문과 피드백은 언제나 환영!

댓글로 남겨주세요:)

코딩 3

배열 vs 리스트 (c++)

array -인덱스를 사용해 값에 바로 접근 - 값을 삽입/삭제 어려움 (다 한 칸씩 밀어야 함) - 배열 크기는 선언할 때 지정할 수 있으며 한 번 선언하면 변경 x -간단한 구조 list(linked list) - 인덱스 x, 앞에서부터 순서대로 접근해서 찾아야함 - 포인터로 연결되어 있기 때문에 데이터 삽입 삭제 빠름 - 선언 시 크기 별도 지정 x - 포인터를 저장할 공간이 필요 --> 배열보다 복잡

알고리즘 2023.08.28

파이썬 알고리즘 시간복잡도

N의 범위가 500인 경우 : 시간 복잡도가 O(N^3)인 알고리즘으로 설계하면 풀이 가능 N의 범위가 2,000인 경우 : 시간 복잡도가 O(N^2)인 알고리즘으로 설계하면 풀이 가능 N의 범위가 100,000인 경우 : 시간 복잡도가 O(NlogN)인 알고리즘으로 설계하면 풀이 가능 N의 범위가 10,000,000인 경우 : 시간 복잡도가 O(N)인 알고리즘으로 설계하면 풀이 가능 파이썬은 1초에 2,000만에서 1억정도의 연산을 처리할 수 있다.

백준 2164번 파이썬 풀이

https://www.acmicpc.net/problem/2164 2164번: 카드2 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 www.acmicpc.net 결론 미리 보기 파이썬에서 string slicing은 시간복잡도 N(len(str))이므로 특정 인덱스의 글자에 접근할 때는 list로 만들어 접근하는 것이 시간복잡도 O(1)로 빠르다! 가장 직관적으로 짤 수 있는 코드는 아마 아래의 코드일 것이다. import sys N=int(sys.stdin.readline()) st='' for i in range(N): st+=str(i+1) for ..