목록Programming/JAVA (67)
Information Security Study
BFS 개념 참고https://gayeon-l.tistory.com/491 BFS 개념BFS: 너비 우선 탐색가까운 노드부터 우선적으로 탐색하는 알고리즘보통 그래프 탐색에 사용두 노드 사이의 최단 경로 또는 임의의 경로를 찾을 때 사용Queue로 구현 BFS의 특징BFS는 시작 정점으gayeon-l.tistory.com 문제 설명두 개의 단어 begin, target과 단어의 집합 words가 있습니다.아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 있습니다.2. words에 있는 단어로만 변환할 수 있습니다.- 예를 들어 begin이 "hit", target가 "cog", words가 ["hot","..
DFS 개념 참고https://gayeon-l.tistory.com/490 DFS 개념DFS (Depth-First Search) 개념DFS(Depth-First Search, 깊이 우선 탐색)는 그래프나 트리의 모든 노드를 탐색하는 알고리즘이다.이 알고리즘은 한 노드에서 시작하여 가능한 깊이까지 탐색한 후 더 이상 탐색gayeon-l.tistory.com 문제 설명두 개의 단어 begin, target과 단어의 집합 words가 있습니다.아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 있습니다.2. words에 있는 단어로만 변환할 수 있습니다.- 예를 들어 begin이 "hit", target가 "..
문제 설명n명이 입국심사를 위해 줄을 서서 기다리고 있습니다.각 입국심사대에 있는 심사관마다 심사하는데 걸리는 시간은 다릅니다. 처음에 모든 심사대는 비어있습니다.한 심사대에서는 동시에 한 명만 심사를 할 수 있습니다.가장 앞에 서 있는 사람은 비어 있는 심사대로 가서 심사를 받을 수 있습니다.하지만 더 빨리 끝나는 심사대가 있으면 기다렸다가 그곳으로 가서 심사를 받을 수도 있습니다. 모든 사람이 심사를 받는데 걸리는 시간을 최소로 하고 싶습니다.입국심사를 기다리는 사람 수 n, 각 심사관이 한 명을 심사하는데 걸리는 시간이 담긴 배열 times가 매개변수로 주어질 때, 모든 사람이 심사를 받는데 걸리는 시간의 최솟값을 return 하도록 solution 함수를 작성해주세요. 제한사항입국심사를 기다리는 ..
Recursion Function재귀 함수함수 내부에서 자기 자신을 호출하는 함수재귀함수를 사용하는 동안 함수 호출이 계속 쌓이기 때문에(호출 스택이 많아짐) 성능이 저하될 수 있다.-> 종료 조건인 Base case 명확히 설정 필요 호출 스택프로그램에서 함수나 메서드를 호출할 때 해당 함수나 메서드의 실행이 끝날 때까지 실행되는 다른 함수나 메서드의 호출 정보를 저장하는 자료구조디버깅, 예외처리, 재귀함수 등 다양하게 사용함수가 호출될 때마다 그 함수의 호출 정보를 저장하고 함수의 실행 결과가 ㅏ반환되면 해당 함수의 호출 정보를 스택에서 제거한다. 장점코드의 가독성 높음 단점재귀함수를 호출할 때마다 스택에 새로운 프레임 생성 -> 스택이 깊어질 경우 스택 오버플로우 발생 가능 재귀함수 예시 1)..
문제 설명네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있을 때 컴퓨터 A와 컴퓨터 C도 간접적으로 연결되어 정보를 교환할 수 있습니다. 따라서 컴퓨터 A, B, C는 모두 같은 네트워크 상에 있다고 할 수 있습니다.컴퓨터의 개수 n, 연결에 대한 정보가 담긴 2차원 배열 computers가 매개변수로 주어질 때, 네트워크의 개수를 return 하도록 solution 함수를 작성하시오. 제한사항컴퓨터의 개수 n은 1 이상 200 이하인 자연수입니다.각 컴퓨터는 0부터 n-1인 정수로 표현합니다.i번 컴퓨터와 j번 컴퓨터가 연결되어 있으면 computers[i][j]..
문제 설명네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있을 때 컴퓨터 A와 컴퓨터 C도 간접적으로 연결되어 정보를 교환할 수 있습니다. 따라서 컴퓨터 A, B, C는 모두 같은 네트워크 상에 있다고 할 수 있습니다.컴퓨터의 개수 n, 연결에 대한 정보가 담긴 2차원 배열 computers가 매개변수로 주어질 때, 네트워크의 개수를 return 하도록 solution 함수를 작성하시오. 제한사항컴퓨터의 개수 n은 1 이상 200 이하인 자연수입니다.각 컴퓨터는 0부터 n-1인 정수로 표현합니다.i번 컴퓨터와 j번 컴퓨터가 연결되어 있으면 computers[i][j]..
문제 설명n개의 음이 아닌 정수들이 있습니다. 이 정수들을 순서를 바꾸지 않고 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. 사용할 수 있는 숫자가 담긴 배열 numbers, 타겟 넘버 target이 매개변수로 주어질 때 숫자를 적절히 더하고 빼서 타겟 넘버를 만드는 방법의 수를 return 하도록 solution 함수를 작성해주세요. 제한사항주어지는 숫자의 개수는 2개 이상 20개 이하입니다.각 숫자는 1 이상 50 이하인 자연수입니다.타겟 넘버는 1 이상 1000 이하인 자연수입니다. 입출력 예 numbers target return[1, 1, 1, 1, 1]35[4, 1, 2, 1]42 입출력 예..
문제 설명n개의 음이 아닌 정수들이 있습니다. 이 정수들을 순서를 바꾸지 않고 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. 사용할 수 있는 숫자가 담긴 배열 numbers, 타겟 넘버 target이 매개변수로 주어질 때 숫자를 적절히 더하고 빼서 타겟 넘버를 만드는 방법의 수를 return 하도록 solution 함수를 작성해주세요. 제한사항주어지는 숫자의 개수는 2개 이상 20개 이하입니다.각 숫자는 1 이상 50 이하인 자연수입니다.타겟 넘버는 1 이상 1000 이하인 자연수입니다. 입출력 예 numbers target return[1, 1, 1, 1, 1]35[4, 1, 2, 1]42 입출력 예..