본문 바로가기

전체 글399

유니온 파인드 유니온 파인드 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.
클래스 클래스: 하나의 오브젝트와 대응하는 로직"하나의 클래스에 하나의 파일"로 대응되므로 하나의 파일을 만들고 시작 오브젝트에 들어가는 데이터 변수를 만들어서 다른 파일에서 클래스를 불러와 직접 사용할 수 있음이를 위해서는 private가 아닌 public으로 설정 필요private: 외부 클래스에 비공개로 설정public: 외부 클래스에 공개로 설정 MonoBehavior: 게임 오브젝트 클래스 class: 클래스 선언접근자(private/public) class 클래스이름 {내용;}클래스를 불러와서 사용하는 방법해당 클래스를 하나의 변수로 저장하게 됨(= 이스턴스: 정의된 클래스를 변수 초기화로 실체화) 클래스이름 변수명 = new  클래스(); 클래스 이름 = 클래스: 불러올 다른 클래스변수명: 해당 클.. 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.
How Furry Pet Rabbits Can Become Invasive Feral Pests How Furry Pet Rabbits Can Become Invasive Feral PestsBY CHANTELLE LEEJUNE 26, 2024 9:34 PM EDT토끼가 번식왕이라는건 알고 있는 사실이었다.그리고 토끼가 애완동물로도 최근에 많이 키우고 있다. 자연으로 돌려보내면 보통 적응이 어려워 빨리 죽거나 포식자에게 먹히는 경우가 많은걸로 아는데토끼의 적응력은 정말 대단한 것 같다..이정도면 자연의 선택을 받은 것 같은데, 그만한 이유가 있지 않을까?furry 털로 덮인invasive 급속히 퍼지는feral 돌아다니며 사는pest 해충, 위해 동물 domesticate 길들이다, 지배하다, 가정적이 되게 만들다flourish 번창하다, 잘 자라다 critter 생물 catastrophe 참사, .. 2024. 7. 26.
068 트리 첫번째 코드 먼저 tree의 구성을 리스트로 만들어야 하는데, 어떤 리스트로 작성할 것인지, 어떤 부분에 어떻게 들어갈 것인지 (양방향, 단방향)에 대해서 생각보아야 한다. 또한 DFS를 통해 계속해서 파고 들어가는 방법이고 해당 코드는 이전에 공부한 DFS의 코드와 비슷한 형태를 갖고 있다. 트리의 리프 노드를 확인하기 위해 cNode라는 것을 통해 cNode가 0이면 아래 연결된 노드가 없다는 의미로 해석되어 해당 노드는 리프 노드라는 의미이다. 위 과정을 통해 리프 노드의 개수를 확인한다. 아래 코드는 책을 참고하였고, 그래도 앞에 그래프보다는 할 수 있겠다..라는 생각이 든다..(과연이지만..) import sys input = sys.stdin.readline sys.setrecursionlim.. 2024. 7. 25.
728x90