📑 문제 [ 더 보기 클릭! ]
🌱아이디어
그리디 알고리즘이니 최적의 해를 구해보자!
여기서 핵심은 맨 처음 딸기우유를 마시는 걸로 시작해서 초코우유 -> 바나나우유 -> 딸기우유 순으로 마셔야 한다.
그렇다면 배열을 만들어 조건을 따지고 변수를 만들어 조건이 맞으면 최대 개수를 세주는 변수를 하나 만들어주자
🔍 코드 및 풀이
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt(); // 우유 가게의 수 ( 입력값 )
int[] arr = new int[N];
for (int i = 0; i < N; i++) {
arr[i] = sc.nextInt(); // 우유 종류
}
int milk = 0; // 다음 으로 먹을 우유 종류
int count = 0; // 마실 수 있는 우유의 최대 갯수
for (int i = 0; i < arr.length; i++) {
if(arr[i] == milk){
count++;
milk++;
if (milk == 3){ // 우유가 3이 되면 0으로 초기화 ( 바나나우유 다음은 딸기우유 )
milk = 0;
}
}
}
System.out.println(count);
}
}
우선 조건은 이러합니다.
맨 처음엔 딸기우유, 그다음엔 초코우유, 그다음엔 바나나우유를 마신다는 영학이만의 규칙이 있습니다.
그리고 딸기우유 = 0, 초코우유 = 1, 바나나우유 = 2라고 지정을 해 주었고
한번 지나친 우유 가게에는 다시 갈 수 없다고 했습니다.
마지막으로 문제의 핵심인 영학이가 마실 수 있는 우유의 최대 개수를 세주어야 합니다.
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int[] arr = new int[N];
for (int i = 0; i < N; i++) {
arr[i] = sc.nextInt();
}
우선 첫째줄에는 우유 가게의 수 N을 입력값으로 받고
배열을 만들어 각 우유가게의 숫자를 입력받고 값을 배열에 넣어줍니다. ( 딸기우유 = 0, 초코우유 = 1, 바나나우유 = 2 )
그 후 조건을 걸어줍니다.
int milk = 0; // 다음으로 먹을 우유 종류
int count = 0; // 마실 수 있는 우유의 최대 갯수
for (int i = 0; i < arr.length; i++) {
if(arr[i] == milk){
count++;
milk++;
}
}
System.out.println(count);
조건문을 통해 배열에 담긴 다음 우유가게의 정보 ( arr [i] )와 다음으로 먹을 우유의 종류 [ milk ]가 같다면
마실 수 있는 우유의 최대 개수 ( count )의 값을 증가시켜 주고
다음으로 먹을 우유의 종류 ( milk ) 값을 증가시켜 줍니다.
int milk = 0; // 다음 으로 먹을 우유 종류
int count = 0; // 마실 수 있는 우유의 최대 갯수
for (int i = 0; i < arr.length; i++) {
if(arr[i] == milk){
count++;
milk++;
if (milk == 3){ // 우유가 3이 되면 0으로 초기화 ( 바나나우유 다음은 딸기우유 )
milk = 0;
}
}
}
System.out.println(count);
}
}
마지막 조건문을 통해 다음으로 먹을 우유의 종류 ( milk )는 바나나우유 ( 2 ) 다음 딸기우유 ( 0 )을 마시니 3이 된다면 0으
로 초기화 해줍니다.
📗 느낀 점
맛있는 문제네요!
'Algorithm > - Baekjoon' 카테고리의 다른 글
[백준/Java] 10950번 문제: A+B - 3 (3) | 2023.12.21 |
---|---|
[백준/Java] 10170번 문제: NFC West vs North (4) | 2023.12.19 |
[백준/Java] 2753번 문제: 윤년 (4) | 2023.12.17 |
[백준/Java] 10172번 문제: 개 (4) | 2023.12.17 |
[백준/Java] 2739번 문제: 구구단 (2) | 2023.12.16 |
주코딩의 개발 노트!
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!