배열 Array 와 리스트 List
·
Algorithm/알고리즘 스터디
파이썬에서는 리스트가 배열의 특성도 함께 내포하고 있어 크게 구분하여 사용하지는 않지만 두 자료구조의 특징과 동작 원리는 알아야 한다.배열 Array메모리의 연속 공간에 값이 채워져 있는 형태의 자료구조 배열 특징 [ 장점  단점 ]인덱스를 통해 참조(접근)할 수 있다.선언한 자료형의 값만 저장할 수 있다.새로운 값을 삽입하거나, 특정 인덱스에 있는 값을 삭제하기 어렵다.* 값을 삽입하거나 삭제하려면 해당 인덱스 주변에 있는 값을 이동시키는 과정이 필요한다. => 삽입 삭제가 느리다배열의 크기는 선언할 때 지정할 수 있으며, 한번 선언하면 크기를 늘리거나 줄일 수 없다.리스트 List값과 포인터를 묶은 노드라는 것을 포인터로 연결한 자료구조* 노드는 컴퓨터 과학에서 값, 포인터를 쌍으로 갖는 기초 단위를..
디버깅
·
Algorithm/알고리즘 스터디
문법 오류인 경우, 컴파일러가 잡아준다.논리 오류(문법은 틀리지 않았는데 logic이 내가 원하는 대로 돌지 않은 오류)인 경우, 검증할 때 사용하는 것이 디버깅이다. 디버깅은 가장 뛰어난 오류 탐색 방법이다.* 디버깅은 프로그램에서 발생하는 문법 오류나 논리 오류를 찾아 바로잡는 과정이다.디버깅 방법코드에서 디버깅하고자 하는 줄에 중단점을 설정한다. 이때 중단점은 여러 개 설정할 수 있다.IDE의 디버깅 기능을 실행하면 코드를 1줄씩 실행하거나 다음 중단점까지 실행할 수 있으며, 이 과정에서 추적할 변숫값도 지정할 수 있다. 이 방법으로 변숫값이 자신이 의도한 대로 바뀌는지 파악한다.변숫값 이외에도 원하는 수식을 입력해 논리 오류를 파악할 수 있다. * 2, 3에서 말하는 변숫값 추적은 PyCharm의..
[프로그래머스 Lv.1] 없는 숫자 더하기
·
Algorithm/코딩 테스트
문제https://school.programmers.co.kr/learn/courses/30/lessons/86051📔 문제0부터 9까지의 숫자 중 일부가 들어있는 정수 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요.🚫 제한사항1 ≤ numbers의 길이 ≤ 90 ≤ numbers의 모든 원소 ≤ 9numbers의 모든 원소는 서로 다릅니다.📝 입출력 예시numbersresult [1,2,3,4,6,7,8,0]145, 9가 numbers에 없으므로, 5 + 9 = 14를 return 해야 한다.[5,8,4,0,6,7,9]61, 2, 3이 numbers에 없으므로, 1 +..
셋 SET
·
Algorithm/알고리즘 스터디
셋 SET데이터를 저장하는 추상자료형 (ADT)순서를 보장하지 않음데이터 중복을 허용하지 않음데이터 조회(search)가 List보다 빠름명령 (밑에서 아래로)판단결과add(10)성공10add(20)성공10  20add(30)성공10  20  30add(10)무시 : 이미 10이 존재하기 때문에 중복 X10  20  30contains(40)false : 40이 없기 때문에10  20  30contains(10)true :  10이 있기 때문에10  20  30remove(10)성공20  30셋은 언제 사용할까?1. 중복된 데이터를 제거해야할 때ex) 스타트업 하면 떠오르는 단어를 여러 사람들에게 물어봤을 때 중복된 단어가 나올 수 있다. 2. 데이터의 존재 여부를 확인해야 할 때용인시에서 '청년 전세자..
시간 복잡도
·
Algorithm/알고리즘 스터디
시간 복잡도 유형빅 오메가 : 최선일 때 (Best case)의 연산 횟수를 나타내는 표기법 : 1번빅 세타 : 보통일 때 (Average case)의 연산 횟수를 나타내는 표기법 : N/2번빅 오 : 최악일 때 (Worst case)의 연산 횟수를 나타내는 표기법 : N번* N은 데이터의 갯수를 의미한다. 시간 복잡도 예시import randomfindNumber = random.randrange(1, 101) # 1~100 사이의 랜덤 값 생성for i in range(1, 101): if i == findNumber: print(i) break 위 코드에서- 랜덤 넘버가 1이라면 가장 빠른 시간 내에 넘버를 찾은 것이기 때문에 빅 오메가를 표기한다.- 랜덤 넘버 1~100 사이의..
시간복잡도 2 (ing)
·
Algorithm/[C] Do it! 자료구조와 함께 배우는 알고리즘
보호되어 있는 글입니다.