알고리즘/개념정리 5

순열

문제10개 이하의 N개의 자연수가 주어지면, 그 중 M개를 뽑아 일렬로 나열하는 방법을 모두 출력하시오. 입력첫번째 줄에 결과를 출력합니다. 출력 순서는 사전순으로 오름차순으로 출력합니다. 입력 예시3 23 6 9 출력 예시 3 6 3 96 36 99 39 6 풀이과정 반복문과 DFS를 이용하여 순열을 구현할 수 있다. static int n,m;static int[] arr;static boolean [] visited;static int[] answer;첫번째 줄에 주어진 자연수들을 저장하기 위한 배열 arr을 선언한다. 중복으로 선택되는것을 막기 위해 boolean 배열을 이용하여 한번 선택되었다면 방문처리를 해준다. 선택된 수를 저장하기 위해 answer 배열을 사용하여 기록한다. m..

유니온 파인드

유니온 파인드 알고리즘은 두 노드가 하나의 집합에 속하는지 판별하고 싶을때 매우 유용하게 사용되는 방법이다. 노드를 합치는 Union 연산과 노드의 루트 노드를 찾는 Find 연산으로 이루어진다.   이렇게 복잡한 그래프에서는 빠른 시간 안에 두 노드가 연결되어 있는지 판별하는 게 힘들다.바로 이런 경우에 두 노드가 연결되어 있는지, 끊어져 있는지를 판별하는 방법이  "유니온 파인드" 이다.  두 노드가 연결되어있는지 판단하는 방법은 ,  두 노드가 하나의 집합 안에 포함되는지 확인하면 된다. 그렇게 하기 위해서는 먼저 연결되어있는 노드들을  하나의 집합으로 만드는 과정이 필요하다.  바로 이 과정이 Union (유니온) 이다.  예를들어, 1호선이 지나가는 역들은 모두 남색선으로 표시하였다. 이것이 바..

그래프를 구현하는 방법

그래프 정리   비선형 자" data-og-host="velog.io" data-og-source-url="https://velog.io/@kwontae1313/%ED%8A%B8%EB%A6%AC%EC%99%80-%EA%B7%B8%EB%9E%98%ED%94%84%EC%97%90-%EB%8C%80%ED%95%B4-%EC%95%8C%EC%95%84%EB%B3%B4%EC%9E%90" data-og-url="https://velog.io/@kwontae1313/트리와-그래프에-대해-알아보자" data-og-image="https://blog.kakaocdn.net/dna/bjE8n0/hyXzWTzIHq/AAAAAAAAAAAAAAAAAAAAACfpRH4I7TUqc4Qdqy6QaLOR0CyKo_MrtNh-tMLre6P3/img.png?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&expires=1753973999&allow_ip=&allow_referer=&signature=2IepkiJ3qpe6b26PLh8CFncnmyk%3D

소수를 구하는 방법

소수를 구하는 방법 3가지를 정리해보고자 한다. 첫번째는 기본적인 방법이고, 두번째는  첫번째 방법을 약간 변형한것, 세번째는 에라토스테네스의 체를 이용하는 방법이다. 아무래도 두번째 방법이 시간 복잡도를 고려하지 않는 상황에서는 구현하기 좋기 때문에 상황에 맞게 적절하게 사용하면 될 것 같다.   ✔️ 소수 자기 자신보다 작은 두 자연수의 곱으로 나타낼 수 없는 1보다 큰 자연수를 소수 라고 한다. 쉽게 말해, 1과 자기자신 외에 약수가 존재하지 않는 수 이다.   🐙 첫번째 방법 : N 보다 작은 자연수들로 모두 나눠본다 어떤 임의의 수 N이 소수인지, 아닌지를 구별하는 가장 쉬운 방법은 N 보다 작은 자연수들로 모두 나눠보는것 이다.  1 아래의 코드와 같이 반복문을 이용하여 직접 값을 나눠보면서..

정렬

https://velog.io/@jiyaho/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EC%8B%9C%EA%B0%84-%EC%A0%9C%ED%95%9C%EA%B3%BC-%EC%8B%9C%EA%B0%84-%EB%B3%B5%EC%9E%A1%EB%8F%84 [알고리즘] 시간 제한과 시간 복잡도코딩 테스트에서 문제의 제한 시간은 보통 1~5초 정도이다.일반적인 CPU 기반의 PC나 채점용 컴퓨터에서 1초에 실행할 수 있는 최대 연산 횟수는 velog.io 선택 정렬 선택 정렬이란 정렬 해야하는 값들 중에서 가장 작은수를 선택하여 맨 앞으로 보내는 방법이다.    예를 들어  3 2 4 6 8 1 5 가 있다고 하자. 그렇다면 여기서 가장 작은 수는 1 이므로 1을 맨 앞으로 보낸다. ..