알고리즘 공부(4)

흑이·2022년 5월 9일
0

문제



작성한 코드

  • 예제 입력에 있는 값에 맞게 정상적으로 출력되었지만
  • 제출하였더니 틀렸음... 자세히 보니 로직도 엉망이고... 오늘 하루 시간을 다 써버렸다..


구글링 코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.StringTokenizer;

public class Baekjoon_1333 {
    public static void main(String[] args) throws IOException{

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        int n = Integer.parseInt(st.nextToken());
        int l = Integer.parseInt(st.nextToken());
        int d = Integer.parseInt(st.nextToken());
        ArrayList<Boolean> sec = new ArrayList<Boolean>();

        for(int i = 0; i < n; i++) {
            for(int j = 0; j < l; j++) {    //음악 n초 출력
                sec.add(true);
            }

            if(i != n-1) { // 마지막 곡이 아닐 경우
                for(int j = 0; j < 5; j++) {    // 음악과 음악 사이 5초
                    sec.add(false);
                }
            }
        }

        int result = 0;
        while(result < sec.size()) {    //벨이 울리는 주기에 따라 해당 sec를 확인하여 음악이 나오지 않는중(false)이면 해당 sec를 출력
            if(sec.get(result) == false) {
                break;
            }
            result += d;
        }
        System.out.println(result);

    }
}

  • 이분이 작성한 코드를 하나씩 디버깅 하면서 살펴봤다....
  • Boolean 타입의 ArrayList에 노래가 재생하면 true, 음악이 나오지 않으면 false로 하나씩 넣어줌
  • while문으로 음악이 재생되지 않으면 == false, result를 출력하도록 작성 하셨다..
  • 문제를 이해하는것도 푸는것도 굉장히 어렵네...



https://umilove98.tistory.com/64

0개의 댓글