티스토리 뷰

출저 : https://www.acmicpc.net/problem/1783


"그리디 알고리즘,  내 머리속으로 계산."



여러 조건들이 있었다. 오른쪽으로만 이동하며, 이동 횟수가 4가 넘어가는 경우 가능한 4가지의 방법 모두 적어도 한번씩은 사용해야 한다.

이러한 부분들을 조건문으로 분기시킨다... 잘 생각해보자. n이 1,2,3,... 일때를 생각해보고, m이 7보다 작을때, 크거나 같을 때를 생각해보자.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import java.util.Scanner;
 
public class Main {
 
    static int n,m;
    static Scanner sc = new Scanner(System.in);
    
    public static void main(String[] args) {
        n = sc.nextInt();
        m = sc.nextInt();
        
        System.out.println(solve());
        
    }
    
    static int solve() {
        if(n == 1return 1;
        // n이 2일 때 최대 얼마나 갈수 있을지 생각해보자.
        if(n == 2return Math.min(4, (m+1)/2);
        // 4가지 방법을 모두 사용했을 때 갈 수 있는 칸의수..
        if(m < 7 ) return Math.min(4, m); 
        
        return m-2;
    }
}
cs




댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday