문제
출처 : https://www.acmicpc.net/problem/12791
쿼리의 수 Q와, 각 쿼리마다 S년(1월 1일) E년(12월 31일) 이 주어진다.
S년 부터 E년까지 발매된, 전설적인 락 스타 David Bowie의 앨범을 출력하는 문제다.
풀이
구현 문제였다.
문제에서 주어진 앨범을 2차원 ArrayList에 집어넣고, 출력하는 방식으로 풀었다.
예를들어, David Bowie가 1973년에 AladdinSane 과 PinUps를 발매했으니, 2차원 배열에는 다음과 같이 저장한다.
ArrayList.get(1973).add("AladdinSane");
ArrayList.get(1973).add("PinUps");
그후, 입력받은 S부터 E까지 순회하며, 배열이 비어있다면 출력하지않고, 비어있지않다면 출력해주면됨.
주요 소스코드
public void run() throws Exception{
initial();
int Q = Integer.parseInt(br.readLine());
for(int i = 0; i < Q; i++){
String[] read = br.readLine().split(" ");
int from = Integer.parseInt(read[0]);
int to = Integer.parseInt(read[1]);
String answerString = "";
int answerInt = 0;
for(int year = from; year <= to; year++){
for(int song = 0; song < album.get(year).size(); song++){
answerInt++;
answerString += year + " " + album.get(year).get(song) + "\n";
}
}
System.out.println(answerInt);
System.out.print(answerString);
}
}
전체 소스코드
https://github.com/devxb/JJUNalgo/blob/master/BOJ%20source%20code/12791%20Starman/Main.java
'알고리즘 (2020 : 08 : 10 ~ ) > 구현, 시뮬' 카테고리의 다른 글
[백준 / BOJ] 4577 소코반 (0) | 2021.08.09 |
---|---|
[백준 / BOJ] 1917 정육면체 전개도 (0) | 2021.07.23 |
[백준 / BOJ] 17281 ⚾ (야구) (0) | 2021.07.17 |
[백준 / BOJ] 20922 겹치는 건 싫어 (0) | 2021.07.14 |
[백준 / BOJ] 20921 그렇고 그런 사이 (0) | 2021.07.13 |