Algorithm

언어/Python

파이썬 알고리즘 - 계단을 오르는 방법 횟수(재귀함수)

개발자 면접 트레이딩 - 파이썬 알고리즘 문제(15) (1). 개발자 면접 트레이닝 - 계단을 오르는 방법 횟수 구하기(재귀함수) ① 재귀함수 숙지 후 실습 ② 응용하면 팩토리얼, 순열 계산 등 여러분야에서 활용된다. (2). 소스 코드 PYTHON #countWays.py def countWays(n): if(n < 0): return 0 elif n == 0: return 1 else: return countWays(n-1) + countWays(n-2) + countWays(n-3) #재귀함수 #만약 4칸의 계단이 있다면 print(countWays(4)) (3). 소스 코드 분석 ① 5 라인 : 재귀함수 countWays 메소드 선언 ② 12 라인 : 함수를 리턴(return) ③ 17 라인 : ..

언어/Python

파이썬 알고리즘 - 비트 위치 A,B 로 비트열 M을 N으로 삽입

개발자 면접 트레이딩 - 파이썬 알고리즘 문제(14) (1). 개발자 면접 트레이닝 - 비트 위치 A,B 로 비트열 M을 N으로 삽입 ① 비트(Bit)구조 이해하는 것이 중요 ② 비트 연산자에 대해서 개념 숙지 후 코딩 실습 ③ 비트열 삽입 관련 코딩 문제는 자주 출제 된다. ④ 예를들어 스택 사이즈가 M = 10011, N = 10000000000 일 경우 i = 1 , j = 7 이 주어졌을 때 결과는 10000100110 출력 (2). 소스 코드 PYTHON #updateBits.py """ N = 10000000000 M = 10011 i = 1 j = 7 output : 10000100110 """ def printBinary(num): b_num = bin(num) print(b_num[2:]..

언어/Python

파이썬 알고리즘 - 스택(Stack)으로 큐(Queue)를 구현하기

개발자 면접 트레이딩 - 파이썬 알고리즘 문제(13) (1). 개발자 면접 트레이닝 - 스택(Stack)을 Set(리스트)으로 구현하기 ① 큐(Queue : 선입선출) 구조 이해하는 것이 중요 ② Enqueue, Dequeue 개념 파악 후 아래 코드 실습 ③ 스택 공간에 데이터가 가득 찰 경우 스택 자체를 리스트로 구성 ④ 예를들어 스택 사이즈가 3, 2, 1 순서로 Enqueue 후 Dequeue 결과는 1, 2, 3 순서로 출력 (2). 소스 코드 PYTHON #two_stack_make_queue.py import unittest class Stack: def __init__(self): self.items = [] self.max = 3 def push(self, item): self.items..

언어/Python

파이썬 알고리즘 - 스택(Stack)을 Set(리스트)으로 구현하기

개발자 면접 트레이딩 - 파이썬 알고리즘 문제(12) (1). 개발자 면접 트레이닝 - 스택(Stack)을 Set(리스트)으로 구현하기 ① 스택(Stack) 구조 이해하는 것이 중요 ② Push, Pop, Peek 개념 파악 후 아래 코드 실습 ③ 스택 공간에 데이터가 가득 찰 경우 스택 자체를 리스트로 구성 ④ 예를들어 스택 사이즈가 3 이라면 [2, 3, 7, 9, 12] 의 스택리스트는 [2, 3, 7] , [9, 12] -> 2개로 구성 (2). 소스 코드 PYTHON #list_of_stack.py import unittest class Stack: def __init__(self): self.items = [] self.max = 3 def push(self, item): self.items...

언어/Python

파이썬 알고리즘 - 스택(Stack)에서 최소값 출력하기

개발자 면접 트레이딩 - 파이썬 알고리즘 문제(11) (1). 개발자 면접 트레이닝 - 스택(Stack)에서 최소값 출력하기 ① 스택(Stack) 구조 이해하는 것이 중요 ② Push, Pop, Peek 개념 파악 후 아래 코드 실습 ③ 스택은 개념 상 사용 하는 곳이 많다. (ex : 브라우저 뒤로가기 등) ④ 예를들어 [2, 3, 7, 9, 12] 의 최소값은 2 출력 (2). 소스 코드 PYTHON #stack_min.py import unittest class stack(): def __init__(self): self.items = [] self.mins = [] self.min = None def push(self, item): self.items.append(item) if self.min ..

언어/Python

파이썬 알고리즘 - 링크드리스트(LinkedList) 회문(대칭) 출력

개발자 면접 트레이딩 - 파이썬 알고리즘 문제(10) (1). 개발자 면접 트레이닝 - 링크드리스트(LinkedList) 회문(대칭) 출력하기 ① 링크드리스트(LinkedList)를 역으로 출력하는 것이 포인트 ② 링크드리스트를 정확히 생성하고 역으로 출력하는 것이 중요 ③ 링크드리스트의 회문(역)을 리턴 ④ 예를들어 [2, 3, 5, 3, 2] 의 회문은 [2, 3, 5, 3, 2] 으로써 결과값은 같다. (2). 소스 코드 PYTHON #palindrome_linkedlist.py import unittest class Node: def __init__(self, item): self.val = item self.next = None class LinkedList: def __init__(self, ..

언어/Python

파이썬 알고리즘 - 두 링크드리스트(LinkedList)의 합(SUM) 계산

개발자 면접 트레이딩 - 파이썬 알고리즘 문제(9) (1). 개발자 면접 트레이닝 - 두 개의 링크드리스트(LinkedList)의 합(SUM) 계산 ① 단순해 보이지만, 난이도가 있는 알고리즘 문제 ② 두 링크드리스트의 각 자리수를 계산하는 것이 중요 ③ 합산 된 링크드리스트의 합을 리턴 ④ 예를들어 [7, 1, 6] + [5, 9, 2] 두 링크드리스트의 합 -> 912 출력 (2). 소스 코드 PYTHON #sum_linkedlist.py import unittest class Node: def __init__(self, item): self.val = item self.next = None class LinkedList: def __init__(self, item): self.head = Node(..

언어/Python

파이썬 알고리즘 - 선택 노드를 기준으로 링크드리스트(LinkedList) 분할

개발자 면접 트레이딩 - 파이썬 알고리즘 문제(8) (1). 개발자 면접 트레이닝 - 특정 노드를 입력 받아 링크드리스트 분할 후 병합 ① 링크드리스트는 다음 노드의 위치를 가르키고 있는 포인트 보유 ② 분할(Split) 후 다시 병합(Merge)하는 것이 중요 ③ 첫 번째 노드(Node)의 위치를 지정하는 것이 중요 ④ 예를들어 [6, 3, 8, 1, 5, 9] 에서 5 노드 기준으로 나누면 -> [3, 1, 5, 6, 8, 9] 출력 (2). 소스 코드 PYTHON #split_merge_linkedlist.py import unittest class Node: def __init__(self, item): self.val = item self.next = None class LinkedList: d..

언어/Python

파이썬 알고리즘 - 링크드리스트(LinkedList)에서 끝 에서 N 번째 값

개발자 면접 트레이딩 - 파이썬 알고리즘 문제(7) (1). 개발자 면접 트레이닝 - 링크드리스트에서 끝에서 지정 하는 노드의 값 구하는 알고리즘 ① 링크드리스트는 다음 노드의 위치를 가르키고 있는 포인트 보유 ② 파이썬 클래스 Next 변수 활용 ③ 첫 번째 노드(Node)의 위치를 지정하는 것이 중요 ④ 예를들어 [3, 4, 5, 6, 7, 7, 8, 9, 9] 에서 끝에서 2번째의 노드의 값은 은 -> 9 출력 (2). 소스 코드 PYTHON #last_n_val_linkedlist.py import unittest class Node: def __init__(self, item): self.val = item self.next = None class LinkedList: def __init__(s..

언어/Python

파이썬 알고리즘 - 링크드리스트(LinkedList)에서 중복 제거하기

개발자 면접 트레이딩 - 파이썬 알고리즘 문제(6) (1). 개발자 면접 트레이닝 - 링크드리스트에서 중복되는 노드 삭제(Delete) 알고리즘 ① 링크드리스트는 다음 노드의 위치를 가르키고 있는 포인트 보유 ② 파이썬 클래스 Next 변수 활용 ③ 첫 번째 노드(Node)의 위치를 지정하는 것이 중요ㅛ ④ 예를들어 [3, 4, 5, 6, 7, 7, 8, 9, 9] 는 -> [3, 4, 5, 6, 7, 8, 9] 출력 (2). 소스 코드 PYTHON #remove_dup_linkedlist.py import unittest class Node: def __init__(self, item): self.val = item self.next = None class LinkedList: def __init__(..

[좋은사람]
'Algorithm' 태그의 글 목록