algorithm & data structure

    [모두의 알고리즘] 최댓값 찾기

    참고 교재: 모두의 알고리즘 with 파이썬 ❓ 문제 주어진 숫자 n개 중 가장 큰 숫자를 찾는 알고리즘 입력: 17, 92, 18, 33, 58, 7, 33, 42 출력: 92 ❗️ 풀이 python def find_max(numList): max = numList[0] for i in range(0, len(numList)): if max Int { var max = list[0] for i in list { if max < i { max = i } } return max }

    [모두의 알고리즘] 1부터 n까지의 합 구하기(python, Swift)

    참고 교재: 모두의 알고리즘 with 파이썬 ❓ 문제 1부터 n까지 연속한 숫자의 합 구하기 입력: n 출력: 정수🌀 기존 풀이 python def sum_1ton(n): total = 0 for i in range(1, n+1): total += i return totalSwift5 public func sum_1ton(n: Int) -> Int { var sum:Int = 0 for i in 1.. Int { return (n * (n + 1)) / 2 }✔️ 연습문제 // 연습문제 1-1 public func sumPow_1toN(n: Int) -> Int { var sum = 0 for i in 0...n { sum += Int(pow(Double(i), 2.0)) } return sum } //..

    [백준] 5639: 이진 검색 트리

    이진 트리의 순회 방식 전위 순회(DLR) ✔️ 데이터->왼쪽노드->오른쪽노드 순서중위 순회(LDR) 왼쪽노드->데이터->오른쪽노드 순서후위 순회(LRD) ✔️ 왼쪽노드->오른쪽노드->데이터 순서🔗 문제 링크: https://www.acmicpc.net/problem/5639 풀이 전위 순회의 첫 원소는 루트임! 💡 idea: 이진 트리를 구해서 후위 순회하기 시간 초과... 이진 트리를 만드는 시간 + 후위 순회에 걸리는 시간이라서 시간 초과가 난다.💡 전위 순회 결과를 최대한 활용하자! 전위 순회의 첫 원소가 루트 노드이고, 루트 노드의 다음 노드가 루트보다 작으면 왼쪽, 루트보다 크면 오른쪽으로 나뉜다. 참고한 글

    [프로그래머스] 주식 가격 풀이

    주식가격 문제 스택 Last In First Out(LIFO), 나중에 들어간 원소가 먼저 나옴 push: 스택에 쌓음 pop: 가장 마지막에 들어간 원소를 제거하며 반환 파이썬 풀이 def solution(prices): st=[] answer = [0]*len(prices) for i in range(len(prices)): if st == []: st.append(i) continue else: if prices[i] >= prices[i-1]: st.append(i) else: while prices[i] < prices[i-1] : top = st.pop() answer[top] = i-top if st == []: st.append(i) break top = st.pop() st.append(..

    배열과 연결리스트

    배열 Array 배열은 가장 기본적인 자료 구조, 같은 데이터 유형을 가진 자료들의 그룹/세트 연속된 기억장소를 배정받는다. 배열명/원소/인덱스 존재 배열은 원소를 추가/삭제하기가 어렵다. 이는 연결리스트로 해결 가능하다. 리스트 차례대로 나열된 자료들의 모임 나열 순서가 중요한 경우도 있음(선형리스트) 사용 예시: 자료 검색, 전체 검색/순회/출력, 순서 변경, 전체 목록 개수 계산, 자료 추가/삭제/변경, 빈 목록 여부 판단 선형리스트 순서대로 나열된 동일 유형의 항목들( 집합: 항목간 순서 개념 X) 선형리스트의 예시 요일(일,월,화,...,토) 자음(ㄱ,ㄴ,ㄷ,...,ㅎ) 휴대폰 문자 메시지 리스트 C++의 경우 나열형 자료형 enum 제공 enum Day{SUN, MON, TUE, WED, TH..