전체 글 38

[Python] 위치(인덱스) 찾기 (find(), index())

백준 1167 트리의 지름 특정 원소가 리스트의 몇 번째 인덱스에서 등장하는지 찾아야 했다. indexOf()가 안되길래 검색해보니 indexOf()는 자바스크립트 문법이었다.. 이참에 잘 정리해두자. 위치(인덱스) 찾는 함수 2가지 find() a = 'abcdab' print(a.find('a')) # 0 print(a.find('c')) # 2 print(a.find('bcd')) # 1 => 문자열의 위치를 찾을 수도 있음 print(a.find('a', 2)) # 4 => 시작점만 지정한 경우 print(a.find('a', 2, 5)) # 4 => 시작점과 끝점을 지정한 경우 print(a.find('..

[Python] 나눗셈, 몫과 나머지

/와 //가 헷갈려 정리해본다. "/": 기본적인 나눗셈, 결과는 항상 float 형 a = 10, b = 3 => a / b 결과는 3.3333333333333335 a = 10, b = 2.5 => a / b 결과는 4.0 "//": 나눗셈의 몫 a = 10, b = 3 => a // b 결과는 3 (int) a = 10, b = 2.5 => a // b 결과는 4.0 (float) "%": 나눗셈의 나머지 a = 10, b = 3 => a % b 결과는 1 (int) a = 10, b = 2.5 => a % b 결과는 0.0 (float) "divmod(a, b)": 나눗셈의 몫과 나머지, 나눗셈 연산을 수행할 변수 2개가 필요하며 결과는 항상 튜플 형식! a = 10, b = 3 => divmod..

[Python] 우선순위 큐와 힙(PriorityQueue & heapq)

🔍 우선순위 큐와 힙(PriorityQueue & heapq) 우선순위 큐(힙 큐) 문제들을 분명 풀었던 기억이 있는데, 그때도 얼렁뚱땅 풀었던 기억이 난다. 오늘 절댓값 힙(백준 11286번) 문제를 푸는데, 우선순위 큐는 기억이 나지 않아 deque로 풀어보니 역시나 시간초과가 났다. 이참에 우선순위 큐에 대해 정리해놓아야겠다 생각이 들어 작성해 본다. 대략적인 개념과 파이썬에서의 사용 방법을 정리해보려 한다. 공식 문서와 이것이 코딩 테스트다, 기타 블로그 등을 참고하였다. 📃 우선순위 큐(Priority Queue) 우선순위 큐는 우선순위가 가장 높은 데이터를 가장 먼저 삭제하는 자료구조 데이터를 우선순위에 따라 처리하고 싶을 때 사용함 구현 방법 2가지 리스트를 이용하여 구현 (삽입: O(1),..

[Python] 10진수 -> 2, 8, 16진수 변환

프로그래머스 레벨2 이진 변환 반복하기 10진수에서 2, 8, 16진수 변환 bin(), oct(), hex() 함수 사용, 결과는 문자열 타입 format() 함수 사용, 두 번째 인자에서 # 제거 시 접두어가 빠진 결과 얻을 수 있음 value = 30 b = bin(value) # 0b11110 o = oct(value) # 0o36 h = hex(value) # 0x1e b1 = format(value, '#b') # 0b11110 b2 = format(value, 'b') # 11110

[Python] 대문자와 소문자 (반환, 검사)

프로그래머스 레벨2 JadenCase 문자열 만들기 string.upper() => 모든 문자열이 대문자로 바뀐 문자열을 반환함 (기존의 문자열이 변경되는 것이 아님) string.lower() => 모든 문자열이 소문자로 바뀐 문자열을 반환함 ( 〃 ) string.isupper() => 모든 문자가 대문자인지 검사하는 함수, 모두 대문자인 경우에만 True 반환 string.islower() => 모든 문자가 소문자인지 검사하는 함수, 모두 소문자인 경우에만 True 반환

트리 순회

➡️ 트리 순회 순회: 자료 구조에 저장된 모든 데이터를 도는 것 트리 순회에는 주로 재귀 함수를 사용함 순회 기본 동작 3가지 재귀적으로 왼쪽 부분 트리 순회 재귀적으로 오른쪽 부분 트리 순회 현재 노드 데이터를 출력 ☁ Preorder 순회 (전위 순회) pre: ~ 전에 => 부분 트리 순회 "전"에 현재 노드 출력 현재 노드 데이터 출력 -> 재귀적으로 왼쪽 부분 트리 순회 -> 재귀적으로 오른쪽 부분 트리 순회 출력: F, B, A, D, C, E, G, I, H ☁ Postorder 순회 (후위 순회) post: ~ 후에 => 부분 트리 순회 "후"에 현재 노드 출력 재귀적으로 왼쪽 부분 트리 순회 -> 재귀적으로 오른쪽 부분 트리 순회 -> 현재 노드 데이터 출력 출력: A, C, E, D,..

트리

🌲 트리 데이터의 상-하 관계를 저장하는 자료 구조 => 계층적 관계 root 노드(뿌리 노드): 트리의 시작 노드 부모 노드: 특정 노드의 직속 상위 노드 자식 노드: 특정 노드의 직속 하위 노드, 부모 노드와 반대 개념 형제 노드: 같은 부모를 같는 노드 leaf 노드(잎/말단 노드): 자식 노드를 갖고 있지 않은, 가장 말단에 있는 노드 깊이: 특정 노드가 root 노드에서 떨어져 있는 거리 레벨: 깊이 + 1 높이: 트리에서 가장 깊이 있는 노드의 깊이 부분트리(sub-tree): 현 트리의 일부분을 이루고 있는 더 작은 트리 ✌ 이진 트리 각 노드가 최대 2개의 자식 노드를 갖을 수 있는 트리 💻 이진 트리 구현 class Node: """이진 트리 노드 클래스""" def __init__(se..

[JS] 자바스크립트의 형 변환 - 명시적 변환

🔍 자바스크립트의 형 변환(Type Conversion) - 명시적 변환 형 변환이란 자료형을 다른 자료형으로 변경하는 것 (데이터 타입을 변경하는 것!) 앞서 자바스크립트는 상대적으로 데이터 타입이 유연한 언어이며, 이는 데이터 타입이 상황에 따라 변할 수 있음을 의미한다 했음 그 예시로 든 것이 1(숫자) + "2"(문자열) => "1"(문자열) + "2"(문자열) => "12"(문자열) 과 같은 것이었는데, 이렇게 자바스크립트 엔진이 필요에 따라 형 변환을 해주는 것은 "암시적 변환"이라 한다고 함 오늘 정리해 볼 내용은 개발자의 의도에 따라 형 변환을 하는 "명시적 변환"임 암시적 변환, 명시적 변환 이 단어들 자체는 중요하지 않을 수 있지만, 자동으로 형 변환 되는 것과 내가 의도해서 형 변환하..

Front-end/JS 2022.10.29