CS/Algorithm

CS/Algorithm

BFS / DFS 구분

BFS / DFS = 그래프 탐색 방법 DFS 임의의 노드에서 다음 분기로 넘어가기전에 해당 분기를 완벽하게 탐색하는 방법 구현방법: Stack, 재귀함수 경로를 탐색할때, 한방향으로 갈 수있을때까지 계속 탐색 - > 더이상 갈 수 없다면, 다른 방향으로 다시 탐색 진행함 BFS 임의의 노드에 인접한 노드를 먼저 탐색하는 방법 가장 가까운 노드 먼저 방문 > > 멀리 떨어져있는 것은 나중에 - 구현방법 : Queue 사용 DFS VS BFS 문제 분류 방법 그래프의 모든 정점을 방문 -> DFS, BFS 사용 경로의 특징을 저장 -> DFS (BFS는 경로의 특징을 가질 수 없다) -> DFS : 한경로상의 노드를 기억하기 때문에 적은 메모리를 사용한다. 최단 거리를 구해야할 때 -> BFS (BFS는 ..

CS/Algorithm

[ 프로그래머스 / JAVA ] Lv.0 연속된 수의 합 (반례)

문제출처 : https://school.programmers.co.kr/learn/courses/30/lessons/120923 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 틀렸던 부분들: - 정수이기 때문에 음수도 포함된다는 것 - total값이 0일 경우 - > [-2,-1,0,1,2] total이 0인 경우를 대비해서 반복문 범위를 다시 해주었다. for (int i = -(total + num); i

CS/Algorithm

[백준/정렬 - Python] 2750, 2751, 17390, 2399, 8989, 3273

https://www.acmicpc.net/problem/2750 https://www.acmicpc.net/problem/2751 2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 2750번, 2751번 import sys input = sys.stdin.readline n = int(input()) array = [] for _ in range(n): array.append(int(input())) array.sort() for i in range(n): print(array[i]) 17390번 ..

CS/Algorithm

[백준/Python] 적록색약 : 10026 / 반례

https://www.acmicpc.net/problem/10026 10026번: 적록색약 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록) www.acmicpc.net 조건 - 적록색약이 있는 사람과 없는 사람을 띄어쓰기로 구분해서 영역 수 출력 - 적록일 때는 RG를 같은 개체로 생각하도록 하고, 적록이 아닐 경우는 RGB를 다 구분하게 해서 탐색하도록 - 상하좌우만 접근 가능 문제 접근 1. 미로탐색 같은 문제 : BFS로 풀이 2. 적록색약인 사람인데 , 현재 찾는 기준점 (check)이 RG이고 다음 탐색할 곳이 RG이면 check을 다음 탐색부분..

yujindonut
'CS/Algorithm' 카테고리의 글 목록