본문 바로가기

코딩 테스트291

070 트리 순회 첫번째 코드 먼저 트리를 구성하는 방법에 대해서 적응이 필요할 것 같다.트리를 이전에 class나 __init__이렇게 구성하는데, 해당 과정을 잘 모르겠다.이번 문제는 리스트로 표현하여 어떻게 나오게 할지 재귀로 순서만 생각하면 된다면,트리와 관련된 구성 방법에 대한 공부가 필요하다... 코드는 책을 참고했다!!순서를 헷갈리지 않으면 혼자 풀 수 있을 것 같다. import sys input = sys.stdin.readline n = int(input()) tree = {} for _ in range(n):     root, left, right = input().split()     tree[root] = [left, right] def preOrder(now):     if now == '.': .. 2024. 7. 30.
069 문자열 집합 (미해결) 첫번째 코드 트라이 함수를 이용해서 문자를 정렬하면서 찾아가는 방법을 이용한다.코드는 책을 참고했다. 트라이라는 개념은 이해하겠으나 트리와 관련해서 코드를 작성하는 것이 너무 어렵다.트리는 많이 보이는 문제인데.... import sys input = sys.stdin.readline class Node(object):     def __init__(self, isEnd):         self.isEnd = isEnd         self.childNode = {} class Trie(object):     def __init__(self):         self.parent = Node(None)     def insert(self, string):         nowNode = self.pa.. 2024. 7. 30.
Find Target Indices After Sorting Array 첫번째 코드 먼저 순서대로 정렬을 한 후에target값과 동일한 경우 해당 인덱스를 가져오는 코드를 작성한다. class Solution:     def targetIndices(self, nums: List[int], target: int) -> List[int]:         answer = []         nums.sort()         index = 0                  for i in nums:             if i == target:                 answer.append(index)             index += 1                  return answer 통과링크https://github.com/ornni/leetcode/t.. 2024. 7. 29.
유니온 파인드 유니온 파인드 Union Find 아래 두 개의 연산으로 구성된 알고리즘- 여러 노드가 있을 때 특정 2개의 노드를 연결해 1개의 집합으로 묶는 union 연산- 두 노드가 같은 집합에 속해 있는지 확인하는 find 연산- Union 연산각 노드가 속한 집합을 1개로 합치는 연산ex) a∈A, b∈B일 때, union(a, b) = A∪B  - Find 연산특정 노드 a에 관해 a가 속한 집합의 노드를 반환하는 연산ex) a∈A 일 때 find(a)는 A집합의 대표 노드 반환 1. 대상 노드 리스트에 index값과 value값이 동일한지 확인2. 동일하지 않으면 value값이 가리키는 index 위치로 이동3. 이동 위치의 index값과 value값이 같을 때까지 1~2 반복 (재귀함수로 구현)4. 대표.. 2024. 7. 28.
벨만-포드 벨만-포드 bellman-ford-moore 그래프에서 최단 거리를 구하는 알고리즘특정 출발 노드에서 다른 모든 노드까지의 최단 경로 탐색음수 가중치 에지가 있어도 수행할 수 있음전체 그래프에서 음수 사이클의 존재 여부를 판단할 수 있음1. 에지 리스트로 그래프를 구현하고 최단 경로 리스트 초기화하기출발노드0, 나머지는 무한으로 초기화2. 모든 에지를 확인해 정답 리스트 업데이트 하기노드개수 -1 만큼 반복:    에지 개수 만큼 반복:        E = (s, e, w)에서 아래 조건을 만족하면 업데이트        D[s] != 무한, D[e] > D[s] + w 이면, D[e] = D[s] + w 3. 음수 사이클 유무 확인하기모든 에지를 다시 사용하여 업데이트되는 노드가 있는지 확인(음수 사이클.. 2024. 7. 27.
정수 제곱근 판별 첫번째 코드 제곱근을 구한 후 해당 값이 정수인지 확인한다. import math def solution(n):     answer = 0     num_sqrt = math.sqrt(n)          if num_sqrt == int(num_sqrt):         answer = (math.sqrt(n) + 1) ** 2     else:         answer = -1              return answer 통과!링크https://github.com/ornni/programmers/tree/main/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4/1/12934.%E2%80%85%EC%A0%95%EC%88%98%E2%80%85%EC%.. 2024. 7. 26.
728x90