본문 바로가기

Computer Science/Algorithm

[Algorithm] Sherlock and Array [Algorithm] Sherlock and Array [Problem] 길이가 N인 배열 A가 있다. 특정 위치 i의 원소에 대해서 좌/우의 부분 합이 같은 i를 찾아라. ex) A[0] + A[1] + . . . + A[i-1] = A[i+1] + A[i+2] + .... + A[n] 을 만족시키는 i [Solve] 1) i를 기준으로 좌/우의 합이 같아야 한다.초기 입력을 받을 시 입력 배열의 총 합을 같이 계산하여 중복 계산을 방지하였다. i를 기준으로 탐색 시, 탐색 대상을 줄이고자 i의 위치에 따라 좌/우 중에서 원소가 더 적은 쪽의 합을 계산하였다. 부분합을 계산 후 초기 입력 시에 계산 한 전체의 합의 1/2이 되는지를 체크한다. import java.io.*;import java.util.. 더보기
[Algorithm] Snakes and Ladders: The Quickest Way Up Snakes and Ladders: The Quickest Way Up [Problem] 1번 바닥에서 시작하여 100번 바닥에 도착하기 위해 최소한으로 몇 번을 이동해야 하는가 ? 조건 1. 주사위의 수는 원하는데로 나온다고 가정한다. 조건 2. 현재 위치에서 100을 넘어가게 되면 이동하지 않고 현재 자리에 가만히 있는다. 조건 3. 사다리 칸에 도착하면 밑에서 올라갈 수만 있고, 뱀을 만나면 머리에서 꼬리로만 이동이 가능하다.조건 4. 한 게임 칸은 사다리의 끝, 뱀의 머리가 동시에 될 수 없다. [Constraints] 게임판은 10x10이며 도착지점의 번호는 100이다. 총 테스트 케이스 T : 1 더보기
[Algorithm] Grid Challenge Grid Challenge [Problem] 소문자로만 이루어진 2차원 배열 G가 있다. i행 j열의 원소를 G[i][j]라고 한다. 2차원 배열 G는 소문자로만 이루어져있다. 이 2차원 배열을 가지고 1가지의 연산만을 할 수 있다.G[i][j]와 G[i][j+1]의 두 원소를 SWAP할 수 있다. 이 때, 주어진 배열 G가 swap연산만을 사용하여 G[i][1]≤G[i][2]≤⋯≤G[i][N]G[i][1]≤G[i][2]≤⋯≤G[i][N] for 1≤i≤N1≤i≤N and G[1][j]≤G[2][j]≤⋯≤G[N][j]G[1][j]≤G[2][j]≤⋯≤G[N][j] for 1≤j≤N 을 만족할 수 있는가? [Input Format]첫 줄에는 총 TestCasts T.각 테스트 케이스마다 2차원 배열 G의 크.. 더보기
[Algorithm] Maximise Sum Maximise Sum [Problem]배열의 크기를 나타내는 N과 다른 정수 M이 주어진다. (부분합 % M)의 최대값을 구하라. [Input Format] [Output Format] [Constraints]2 더보기
[Algorithm] Utopian Tree Utopian Tree [문제]Utopian Tree는 1년에 2Cycle을 통해 성장한다. 봄에 2배로 자란다. 여름에 1m 자란다. 현재 Utopian Tree의 키는 1m이다. N Cycle 후의 키는 몇인가 ? [Input Format]첫째줄에 총 Test Cases의 수, TT의 라인들은 각각 테스트케이스의 cycle 수를 가리키는 N을 가진다. [Constraint]1 더보기
Algorithm 진행 계획 Algorithm 매주 1문제씩 작성했던 모든 답안에 대해서 기록한다.해당 해결책이 왜 나왔는지 로직 및 자료구조 등을 기록한다. 더보기