티스토리 뷰
출저 : 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 == 1) return 1; // n이 2일 때 최대 얼마나 갈수 있을지 생각해보자. if(n == 2) return Math.min(4, (m+1)/2); // 4가지 방법을 모두 사용했을 때 갈 수 있는 칸의수.. if(m < 7 ) return Math.min(4, m); return m-2; } } | cs |
'Study > 알고리즘 문제풀이' 카테고리의 다른 글
백준 14889. 스타트와 링크 :: 돼지개발자 (0) | 2019.01.16 |
---|---|
SWEA 1868. 파핑파핑 지뢰찾기 :: 돼지개발자 (0) | 2019.01.14 |
백준 3055. 탈출 :: 돼지개발자 (0) | 2019.01.10 |
백준 1937. 욕심쟁이판다 :: 돼지개발자 (0) | 2019.01.10 |
백준 3076. 상근이의 체스판 :: 돼지개발자 (0) | 2019.01.03 |
댓글
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday