문제
작성한 코드
- 예제 입력에 있는 값에 맞게 정상적으로 출력되었지만
- 제출하였더니 틀렸음... 자세히 보니 로직도 엉망이고... 오늘 하루 시간을 다 써버렸다..
구글링 코드
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