Algorithm/Programmers (3) 썸네일형 리스트형 알고리즘 풀이를 위한 Python 사용법 - 자료구조편 C++로만 알고리즘 문제를 풀던 나. C++ API의 옛스러움과 혼란스러움에 지쳐 Python으로 넘어왔다. 이 문서는 파이썬 초보가 알고리즘을 풀 때 알아두어야 할 지식들을 하나씩 삽질해가며 모아가는 공간이다. 1. stack Python에서 stack은 따로 자료구조 없이 list를 응용하면 된다. 1) PUSH stack = ['a', 'b', 'c'] stack.append('d') # stack의 push 역할로 list의 append() 함수 사용 print(stack) # output # ['a', 'b', 'c', 'd'] 2) POP stack = ['a', 'b', 'c'] pop = stack.pop() # 맨 마지막 (stack으로 따지자면 제일 위) 원소를 제거하면서 해당 값을 리.. 알고리즘 풀이를 위한 Python 사용법 - 기본편 C++로만 알고리즘 문제를 풀던 나. C++ API의 옛스러움과 혼란스러움에 지쳐 Python으로 넘어왔다. 이 문서는 파이썬 초보가 알고리즘을 풀 때 알아두어야 할 지식들을 하나씩 삽질해가며 모아가는 공간이다. 1. 문자열 -> 숫자(정수형) stringNumber = '3' number = int(stringNumber) # 문자(정수형) -> 숫자 print(type(number)) ## output # 2. 문자열 -> 숫자(실수형) stringNumber = '3.5' number = float(stringNumber) # 문자(실수형) -> 숫자 print(type(number)) ## output # 3. 숫자 -> 문자열 number = 3 stringNumber = f'{number}' .. C++ 에서 hash 쓸 땐 unordered_map !! Programmers의 2021 Dev Matching 백엔드 문제 중 "다단계 문제"를 풀었다. 문제에서 요구사항은 다단계의 제일 위에 있는 주인공이 얼마를 벌 수 있는지였고, 다단계 직원 수의 max 값이 10,000명 이었기 때문에 직원들간의 다단계 트리관계를 저장하기 위해선 해시 맵이 필수라고 생각하였다. 그리고 다른 사람들의 풀이를 볼 때 그 생각은 얼추 맞은 듯 하다. 거기까진 좋았는데.. 나는 해시를 직접 구현해버리는 시간 낭비를 저질렀다. 다른 사람들의 코드를 보니 이미 C++에는 red-black tree 기반의 map 컨테이너와 해시 테이블 기반의 unordered_map 컨테이너를 그냥 가져다 쓰고 있었다. 앞으로 환경이 허락되는 한(코테에서 컴파일러가 해당 컨테이너를 제공해주는 한).. 이전 1 다음