알고리즘 연습

알고리즘 연습

[알고리즘 연습] 백준 17276 (배열 돌리기, 자바스크립트)

문제 17276번: 배열 돌리기 각 테스트 케이스에 대해 회전 연산을 마친 후 배열의 상태를 출력한다. n줄에 걸쳐 각 줄에 n개의 정수를 공백으로 구분하여 출력한다. www.acmicpc.net 풀이 회전이 발생하는 4가지 행을 각각 그룹화 한다. 이 때 여러 그룹에 중복으로 사용되는 인덱스가 존재한다. 문제에서 주어진 각도 d 를 통해 회전을 몇 번 반복해야 되는지 구한다. 시계 방향과 반시계 방향에 따라 회전을 다르게 구현한다. 반시계 방향은 가장 앞의 행을 가장 뒤로 이동시킨다. 시계 방향은 가장 뒤의 행을 가장 앞으로 이동시킨다. 소스 코드 const filePath = process.platform === "linux" ? "/dev/stdin" : "./input.txt"; const inp..

알고리즘 연습

[알고리즘 연습] 백준 15686 (치킨 배달, 자바스크립트)

문제 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net 풀이 도시에 있는 치킨집 중에서 M개를 제외한 나머지 치킨집을 폐업시켜야 한다. 어떻게 고르면, 도시의 치킨 거리가 가장 작게 될지 구하는 프로그램을 작성한다. 즉, 도시의 치킨 거리의 최소값을 구한다. map 배열을 생성할 때, 집의 위치와 치킨집의 위치를 각각 저장한다. 조합 알고리즘으로 M개로 이루어진 치킨집 조합을 모두 구한다. 치킨집 조합 중 치킨 거리의 최소값을 구한다. 소스 코드 const filePath = process...

알고리즘 연습

[알고리즘 연습] 백준 1025 (제곱수 찾기, 자바스크립트)

문제 1025번: 제곱수 찾기 첫째 줄에 N, M이 주어진다. 둘째 줄부터 N개의 줄에는 표에 적힌 숫자가 1번 행부터 N번 행까지 순서대로 한 줄에 한 행씩 주어진다. 한 행에 적힌 숫자는 1번 열부터 M번 열까지 순서대로 주어지 www.acmicpc.net 풀이 N * M인 2차원 배열이 주어졌을 때, 행의 번호와 열의 번호가 선택한 순서대로 등차수열을 이루는 서로 다른 1개 이상의 칸을 선택하여 정수를 만든다. 만들 수 있는 정수 중 가장 큰 완전 제곱수를 출력하고 완전 제곱수를 만들 수 없는 경우 -1를 출력한다. 4중 for 문을 통해 배열의 모든 위치에서 가능한 모든 등차를 탐색한다. while 문을 통해 주어진 등차로 위치를 증가시키며 완전 제곱수인지 확인한다. 소스 코드 const file..

알고리즘 연습

[알고리즘 연습] 백준 1548 (부분 삼각 수열, 자바스크립트)

문제 1548번: 부분 삼각 수열 세 수 x, y, z가 x+y>z, x+z>y, y+z>x의 관계를 만족하면, 세 수는 삼각관계에 있다고 한다. 마찬가지로 길이가 N인 수열 B(b[0], b[1], ..., b[n-1])의 모든 b[i], b[j], b[k]가 삼각관계에 있으면 이 수열은 삼각 www.acmicpc.net 풀이 수열의 크기가 N 일 때, 가장 긴 부분 삼각 수열의 길이를 출력한다. 수열이 오름차순으로 정렬되어 있을 때, 수열 a, b, c, d 에 대해서 a + b > d 이면 반드시 a + b > c를 만족한다. 수열의 길이가 2 이하인 경우, 항상 삼각 수열이다. i는 수열의 첫 부분, j는 수열의 마지막 부분에서 시작한다. 소스 코드 const filePath = process.p..

알고리즘 연습

[알고리즘 연습] 백준 2615 (오목, 자바스크립트)

문제 2615번: 오목 오목은 바둑판에 검은 바둑알과 흰 바둑알을 교대로 놓아서 겨루는 게임이다. 바둑판에는 19개의 가로줄과 19개의 세로줄이 그려져 있는데 가로줄은 위에서부터 아래로 1번, 2번, ... ,19번의 번호 www.acmicpc.net 풀이 검은색이 이겼을 경우에는 1을, 흰색이 이겼을 경우에는 2를, 아직 승부가 결정되지 않았을 경우에는 0을 출력한다. 또한, 검은색 또는 흰색이 이겼을 경우에는 연속된 다섯 개의 바둑알 중에서 가장 왼쪽에 있는 바둑알의 좌표를 출력한다. 오목판의 모든 인덱스를 탐색하며 1 또는 2인 위치를 찾는다. 해당 위치를 기준으로 아래 방향, 오른쪽 방향, 오른쪽 위 방향, 오른쪽 아래 방향으로 각각 탐색을 수행한다. 연속된 바둑알이 5개를 초과하는지 확인하고 이..

산본개발자
'알고리즘 연습' 카테고리의 글 목록 (7 Page)