목록Algorithm (185)
SSONG Cloud
문제 출처:https://www.acmicpc.net/problem/1027https://www.acmicpc.net/problem/2234 1. 입력 : 첫째 줄에 빌딩의 수 N이 주어진다. : N은 50보다 작거나 같은 자연수이다. : 둘째 줄에 1번 빌딩부터 그 높이가 주어진다. : 높이는 1,000,000,000보다 작거나 같은 자연수이다. 2. 결과 : 첫째 줄에 문제의 정답을 출력한다. 3. 풀이 :각 건물에 대해 왼쪽과 오른쪽 방향으로 건물들을 확인한다. : 각 방향에 대해 현재 건물과 다른 건물 사이의 기울기를 계산하고, 이전에 계산된 기울기와 비교하여 서로 볼 수 있는지 판단한다. : 최대로 볼 수 있는 건물의 수를 max 변수에 저장한다. let fs = require("fs"); le..
문제 출처: https://school.programmers.co.kr/learn/courses/30/lessons/12945 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 입력 1) 2 이상의 n이 입력된다. n return 3 2 5 5 2. 결과 1) n번째 피보나치 수를 1234567으로 나눈 나머지를 리턴한다. 3. 풀이 1) 피보나치 수의 점화식은 다음과 같다. F(n) = F(n-1) + F(n-2) (n >= 3) 1) 1번째와 2번째 피보나치 수는 미리 배열에 저장해 둔다. 2) for문을 돌며 n번째까지의 피보나치수를 1234567..
문제 출처: https://www.acmicpc.net/problem/2234 1. 입력 : 첫째 줄에 두 정수 N, M이 주어진다. : 다음 M개의 줄에는 N개의 정수로 벽에 대한 정보가 주어진다. : 벽에 대한 정보는 한 정수로 주어지는데, 서쪽에 벽이 있을 때는 1을, 북쪽에 벽이 있을 때는 2를, 동쪽에 벽이 있을 때는 4를, 남쪽에 벽이 있을 때는 8을 더한 값이 주어진다. : 참고로 이진수의 각 비트를 생각하면 쉽다. : 따라서 이 값은 0부터 15까지의 범위 안에 있다. 2. 결과 : 첫째 줄에 1의 답을, 둘째 줄에 2의 답을, 셋째 줄에 3의 답을 출력한다. 3. 풀이 : 비트마스킹과 BFS를 결합해 해결할 수 있다. : 방의 개수는 방 번호를 하나씩 늘려가며 BFS 방식으로 갈 수 있는..
문제 출처: https://www.acmicpc.net/problem/1240 1. 입력 : 첫째 줄에 노드의 개수 N이 입력되고 다음 N-1개의 줄에 트리 상에 연결된 두 점과 거리(10,000 이하의 정수)를 입력받는다. : 그 다음 줄에는 거리를 알고 싶은 M개의 노드 쌍이 한 줄에 한 쌍씩 입력된다. 2. 결과 : M개의 줄에 차례대로 입력받은 두 노드 사이의 거리를 출력한다. 3. 풀이 : 노드사이의 최단 거리를 찾는 문제로 플로이드 와샬 알고리즘을 적용할 수 있다. : 배열을 생성한 후 노드사이의 거리를 입력받는다. : 서로 연결되지 않은 노드의 거리를 큰 수로 바꿔준다. : 중간지점을 연결해가며 최단 거리를 구한다. import java.io.BufferedReader; import java..