본문 바로가기

Algorithm/CodeUp

[CodeUp_Java] Q1521 : 인삼밭

반응형

안녕하세요! Plitche(플리체)입니다.
이번 포스팅의 주제는 Q1521 인삼밭(택배 수령) (자바, JAVA)입니다.

Intro

Question

문제 설명

입력

인삼밭의 크기인 K(0<K<50)가 첫 번째 줄에 입력되고,
택배가 오는데 걸리는 날짜의 수 N(0<N<10)이 두 번째 줄에 입력된다.
그 다음 세 번째 줄부터 10줄에 걸쳐 인삼밭의 정보를 입력한다.−1은 인삼이 없는 곳이고, 인삼의 숫자가 0 5이면 적당히 자란 것이며, 6이상 이면 농사에 실패한 것이다. 인삼은 하루가 지날 때 마다 1씩 자란다.

출력

햇빛 가리개가 필요한 인삼의 개수를 출력한다. 없다면 0을 출력한다.

예시

  • 입력 :
    5 2
    1 -1 0 6 7
    0 0 -1 1 3
    1 1 1 3 4
    0 3 2 4 -1
    1 -1 -1 -1 -1
  • 출력 : 11

Solution (풀이)

  • 풀이 : 메모리 11236, 시간 69
public class Answer1 {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine(), " ");
        int length = Integer.parseInt(st.nextToken());

        // 인삼받의 크기 만큼 배열 선언
        int[][] field = new int[length][length];

        // 택배올때까지 걸리는 시간
        int time = Integer.parseInt(st.nextToken());

        for (int i=0; i<length; i++) {
            StringTokenizer st1 = new StringTokenizer(br.readLine(), " ");
            for (int j=0; j<length; j++) {
                int number = Integer.parseInt(st1.nextToken());
                if (number != -1) {    // 인삼이 없지 않다면 time만큼 더한 인삼의 상태를 저장 
                    field[i][j] = number+time;
                } else {
                    field[i][j] = number;
                }
            }
        }

        // 필요한 가림막의 개수 0으로 초기화
        int count = 0;
        for (int[] i : field) {
            for (int j : i) {
                if (j!=-1 && j<6) {    // 인삼이 택배가 도착할때까지 정상적인 상태라면
                    count++;
                }
            }
        }

        System.out.println(count);
        br.close();
    }

}

Ranking(순위)

반응형