happy coding

[java] 28061. 레몬 따기 본문

coding study/baekjoon

[java] 28061. 레몬 따기

yeoonii 2023. 7. 24. 22:01
import java.io.*;
import java.util.*;
import java.lang.*;

public class Main {
    public static void main(String[] args) throws IOException {
        //첫째 줄에 나무의 수 n 입력 받음, 집은 n+1에 있음
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());
        int[] arr = new int[n+1];

        //둘째 줄에 i에 해당하는 레몬의 개수를 arr에 차례대로 저장 (공백 기준)
        StringTokenizer st = new StringTokenizer(br.readLine());
        for (int i=1;i<arr.length;i++) {
            arr[i] = Integer.parseInt(st.nextToken());
//            System.out.println(arr[i]);
        }

        //성우가 집에 들고 갈 수 있는 레몬의 output 차례대로 계산해서 배열에 저장
        int[] output = new int[n+1];
        int max = arr[0];
        for (int i=1 ; i< arr.length;i++) {
            output[i] = arr[i] - (n+1-i); //집까지 이동할 때 버린 레몬
//            System.out.println(output[i]);
            //output 배열 중 최대 개수 찾아서 출력
            if (output[i] > max) {
                max = output[i];
            }
        }
        System.out.println(max);

    }
}

다른 사람 풀이 보니까 난 for문을 엄청 낭비였더라.. 왜 arr와 output을 따로 만든건지ㅋㅋㅋㅋ

import java.io.*;
import java.util.*;

public class Main {
	
	public static void main(String[] args) throws Exception {
	
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int N = Integer.parseInt(br.readLine());
		int max = 0;
		StringTokenizer st = new StringTokenizer(br.readLine(), " ");
		for (int i = 0; i < N; i++) {
			int now = Integer.parseInt(st.nextToken()) - N + i;
			if (max < now) max = now;
		}
		System.out.print(max);
	}
}

좀 더 공부해야겠다..

'coding study > baekjoon' 카테고리의 다른 글

[java] 27960. 사격 내기  (0) 2023.07.25
[java] 28014. 첨탑 밀어서 부수기  (0) 2023.07.24
[java] 1110. 더하기 사이클  (0) 2023.07.24
[java] 11659. 구간 합 구하기 4  (0) 2023.07.24
[java] 10809. 알파벳 찾기  (0) 2023.07.24
Comments